【學習 python day5】

學習目標:

  • python基礎
    • 掌握函數的定義及調用方法
    • 掌握模塊的用法
    • 掌握包的用法
    • 掌握如何捕獲異常
  • web自動化測試
    • 能完成selenium自動化環境部署及結果驗證
    • 掌握selenium實現自動化測試的核心步驟

學習內容:

一、Python基礎

1、集合[了解]

1, 集合 set, 表現形式  {數據, 數據, 數據}2, 集合中的數據是沒有重復的(重要), 應用這個特點對列表中的數據進行去重- 先將列表轉換為 集合類型,再將集合轉換為列表類型
#前置隨機數使用
#導包
import random
test_list = []
# 產生指定范圍的隨機數
i = 0
# 使用隨機數生成 10 個 1-20 之間的隨機數
while i < 10:
# print(random.randint(1, 20))
# test_list.append(random.randint(起始值, 結束值))
test_list.append(random.randint(1, 20))
i += 1
print(test_list)
# 對列表中的數據進行去重
print(set(test_list))   # 利用集合數據唯一性特點來實現對列表數據去重

2、函數

  • 掌握函數的定義及調用方法
函數可以實現一個特定的功能
print()  控制臺打印輸出
input()  獲取鍵盤的輸入
type()   
獲取變量的類型
len()    
容器的長度
我們自己如何定義一個函數,實現特定的功能
函數: 將多行代碼(實現一個特定的功能)寫在一塊,起個名字,在需要的時候進行調用
函數的作用:  對代碼進行封裝,提高編程效率,減少代碼的冗余(重復的代碼不需要多次書寫)

函數定義與調用

  • 2.1 函數定義與調用
    在這里插入圖片描述
    在這里插入圖片描述
  • 2.2 函數返回值

在這里插入圖片描述

3、模塊和包

  • 掌握模塊的用法
  • 掌握包的用法
1. 模塊(module), 在Python 中,每個代碼文件就是一個模塊
2. 模塊的好處: 模塊中 定義的變量, 函數, 類, 別人可以直接使用
3. 想要使用別人寫好的模塊,就必須先導入別人的模塊 (random)4. 我們自己的代碼文件,想要作為模塊,讓別人使用, 代碼文件名,必須滿足標識符規則(由字母,數字和下劃
線組成, 不能以數字開頭)
  • 3.1 登錄案例

在這里插入圖片描述
在這里插入圖片描述

  • 3.2 登錄案例優化
    在這里插入圖片描述
def fun_login2(phone, pwd):if phone == "13488888888" and pwd == "123456":return "登錄成功"else:return "手機號或密碼錯誤"# 導包
from api.login import fun_login2# 準備測試數據
test_data = [{"username": "13488888888","password": "123456"},{"username": "","password": "123456"},{"username": "13488888888","password": ""}]# 遍歷數據 調用方法 獲取實際結果
for i in test_data:print(f"測試賬號為:{i.get('username')} 測試密碼為:{i.get('password')} 測試結果:
{fun_login2(i.get('username'), i.get('password'))}")if i.get("username") == "13488888888" and i.get("password") == "123456":assert "成功" in fun_login2(pwd=i.get("password"), 
phone=i.get("username"))else:assert "錯誤" in fun_login2(pwd=i.get("password"), 
phone=i.get("username"))
  • 3.3 隨機數案例
需求:定義函數 func, 可以按照如下要求生成隨機數:
1. 該函數可以接收三個參數;- 參數1,為生成隨機數的個數;- 參數2 和參數3 為生成的隨機數的范圍;- 參數2 和參數 3, 如果不傳遞,默認生成 1- 1000 之間的隨機數
2. 要求生成的隨機數不能重復。
3. 將生成的隨機數列表進行返回。
def func(count, start=1, end=1000):test_data = []while True:  # 不確定循環次數
num = random.randint(start, end)  # 產生隨機數
if num not in test_data:          
test_data.append(num)         
# 判定產生的隨機數是否在列表中存在
# 如果不存在,就向列表追加數據
if len(test_data) == count:   # 當列表長度等于指定要產生隨機數字個數count值
時,跳出循環、回到函數被調用的地方
return test_data          
# 返回最后列表數據
if __name__ == '__main__':print(func(10, 1, 20))

在這里插入圖片描述

4、異常

  • 掌握如何捕獲異常
    在這里插入圖片描述
"""
需求:
提示用戶輸入一個整數
使用 8 除以用戶輸入的整數并且輸出
要求:為了簡化代碼,統一捕獲所有異常類型"""# 要嘗試的代碼
try:num1 = int(input("請輸入一個整數:"))num2 = 8 / num1print(num2)# 處理異常的代碼
except Exception as e:print(e)# raise "程序出錯了"# 不管正常還是異常都會執行的代碼
finally:print("程序結束")

二、web自動化測試

  • 能完成selenium自動化環境部署及結果驗證
  • 掌握selenium實現自動化測試的核心步驟

1、selenium介紹

  • UI:用戶操作界面
    • WEB界面
    • APP界面
  • UI自動化:使用代碼或工具代替人針對用
  • 戶操作界面進行測試
    • 實施UI自動化的前置條件
    • 回歸任務重
    • 需求變更不頻繁
    • 項目周期長
  • UI自動化測試執行時機
    • 手工測試完成之后進行
  • UI自動化核心價值
    • 節省人力成本
    • 提高回歸測試效率
    • 提高測試質量
  • UI自動化測試劣勢
    • 對測試人員要求提高
    • 前期投入成本大
    • 對項目要求高
  •               selenium
    

在這里插入圖片描述

2、環境搭建

在這里插入圖片描述

2.1 安裝selenium

在這里插入圖片描述

2.2 安裝瀏覽器驅動

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

2.3 環境確認

在這里插入圖片描述

3、入門案例

3.1 自動化測試步驟

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

3.2 案例

在這里插入圖片描述

# 1、導包
import timefrom selenium import webdriver# 快捷導包 ctrl + alt + 空格
from selenium.webdriver.common.by import By# 2、打開瀏覽器
driver = webdriver.Chrome()# 窗口最大化
driver.maximize_window()# 3、訪問頁面
driver.get("https://hmshop-test.itheima.net/Home/user/login.html")# 4、頁面操作
# 用戶名查找及操作
element = driver.find_element(By.ID, "username")element.send_keys("13488888888")# 密碼查找及操作
element = driver.find_element(By.ID, "password")element.send_keys("123456")# 驗證碼查找及操作
driver.find_element(By.ID, "verify_code").send_keys("8888")# 登錄按鈕查找及操作
driver.find_element(By.NAME, "sbtbutton").click()# 5、關閉瀏覽器
time.sleep(3)driver.quit()# 1、導包
import timefrom selenium import webdriver# 快捷導包 ctrl + alt + 空格
from selenium.webdriver.common.by import By
# 2、打開瀏覽器
driver = webdriver.Chrome()# 窗口最大化
driver.maximize_window()# 3、訪問頁面
driver.get("https://hmshop-test.itheima.net/Home/user/login.html")# 4、頁面操作
# 用戶名查找及操作
element = driver.find_element(By.CSS_SELECTOR, "#username")element.send_keys("13488888888")# 密碼查找及操作
element = driver.find_element(By.CSS_SELECTOR, "#password")element.send_keys("123456")# 驗證碼查找及操作
driver.find_element(By.CSS_SELECTOR, "#verify_code").send_keys("8888")# 登錄按鈕查找及操作
driver.find_element(By.CSS_SELECTOR, "#loginform > div > div.login_bnt > 
a").click()# 5、關閉瀏覽器
time.sleep(3)driver.quit()

學習時間:

上午 9 點-上午 11 點
下午 3 點-下午 6 點


今日總結:

  • python基礎

    • 掌握函數的定義及調用方法
    • 掌握模塊的用法
    • 掌握包的用法
    • 掌握如何捕獲異常
  • web自動化測試

    • 能完成selenium自動化環境部署及結果驗證
    • 掌握selenium實現自動化測試的核心步驟

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/77925.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/77925.shtml
英文地址,請注明出處:http://en.pswp.cn/web/77925.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

day006-實戰練習題-參考答案

老男孩教育-99期-實戰練習題 1. 你作為"老男孩教育99期云計算"新晉運維工程師&#xff0c;在入職首日遭遇緊急事件&#xff1a; "生產環境3臺Web服務器突發性能告警&#xff0c;技術總監要求你立即完成&#xff1a; 快速建立故障診斷工作區收集關鍵系統指標分…

C# 實現列式存儲數據

C#實現列式存儲數據指南 一、列式存儲概述 列式存儲(Columnar Storage)是一種數據存儲方式&#xff0c;它將數據按列而非行組織。與傳統的行式存儲相比&#xff0c;列式存儲在以下場景具有優勢&#xff1a; ??分析型查詢??&#xff1a;聚合計算、分組統計等操作效率更高…

Mysql索引分類、索引失效場景

索引分類 按數據結構分類? B-Tree索引&#xff08;BTree&#xff09; 描述??&#xff1a;默認的索引類型&#xff0c;大多數存儲引擎&#xff08;如InnoDB、MyISAM&#xff09;支持。實際使用BTree結構&#xff0c;數據存儲在葉子節點&#xff0c;葉子節點通過指針連接&a…

SpringBoot+Redis全局唯一ID生成器

&#x1f4e6; 優雅版 Redis ID 生成器工具類 支持&#xff1a; 項目啟動時自動初始化起始值獲取自增 ID 方法yml 配置化起始值可靈活擴展多業務線 ID &#x1f4cc; application.yml 配置 id-generator:member-start-value: 1000000000&#x1f4cc; 配置類&#xff1a;IdG…

深入掌握CSS背景圖片:從基礎到實戰

背景圖片&#xff1a; 本文將通過系統化的講解實戰案例&#xff0c;幫助讀者徹底掌握CSS背景圖片的六大核心知識點。每個知識點都包含對比演示和記憶技巧&#xff0c;建議結合代碼實操學習。 一、背景圖片基礎設置 使用background-image&#xff08;路徑&#xff09;屬性設置…

WPF之XAML基礎

文章目錄 XAML基礎&#xff1a;深入理解WPF和UWP應用開發的核心語言1. XAML簡介XAML與XML的關系 2. XAML語法基礎元素語法屬性語法集合語法附加屬性 3. XAML命名空間命名空間映射關系 4. XAML標記擴展靜態資源引用數據綁定相對資源引用常見標記擴展對比 5. XAML與代碼的關系XAM…

驅動車輛診斷測試創新 | 支持診斷測試的模擬器及數據文件轉換生成

一 背景和挑戰 | 背景&#xff1a; 隨著汽車功能的日益豐富&#xff0c;ECU和域控制器的復雜性大大增加&#xff0c;導致測試需求大幅上升&#xff0c;尤其是在ECU的故障診斷和性能驗證方面。然而&#xff0c;傳統的實車測試方法難以滿足高頻率迭代和驗證需求&#xff0c;不僅…

免疫細胞靶點“破局戰”:從抗體到CAR-T,自免疾病治療的3大技術突破

引言 人體免疫系統組成了一個嚴密調控的“網絡”&#xff0c;時刻檢測著外來病原體&#xff0c;并將其與自身抗原區分開來。但免疫系統也可能會被“策反”&#xff0c;錯誤的攻擊我們自身&#xff0c;從而導致自身免疫性疾病的發生。 目前已知的自免疾病超過100種&#xff0c…

計算機網絡應用層(5)-- P2P文件分發視頻流和內容分發網

&#x1f493;個人主頁&#xff1a;mooridy &#x1f493;專欄地址&#xff1a;《計算機網絡&#xff1a;自頂向下方法》 大綱式閱讀筆記_mooridy的博客-CSDN博客 &#x1f493;本博客內容為《計算機網絡&#xff1a;自頂向下方法》第二章應用層第五、六節知識梳理 關注我&…

十二種存儲器綜合對比——《器件手冊--存儲器》

存儲器 名稱 特點 用途 EEPROM 可電擦除可編程只讀存儲器&#xff0c;支持按字節擦除和寫入操作&#xff0c;具有非易失性&#xff0c;斷電后數據不丟失。 常用于存儲少量需要頻繁更新的數據&#xff0c;如設備配置參數、用戶設置等。 NOR FLASH 支持按字節隨機訪問&…

第十六屆藍橋杯 2025 C/C++組 旗幟

目錄 題目&#xff1a; 題目描述&#xff1a; 題目鏈接&#xff1a; 思路&#xff1a; 思路詳解&#xff1a; 代碼&#xff1a; 代碼詳解&#xff1a; 題目&#xff1a; 題目描述&#xff1a; 題目鏈接&#xff1a; P12340 [藍橋杯 2025 省 AB/Python B 第二場] 旗幟 -…

比亞迪再獲國際雙獎 以“技術為王”書寫中國汽車出海新篇章

近日&#xff0c;全球汽車行業權威獎項“2025世界汽車大獎”&#xff08;World Car Awards&#xff09;在紐約國際車展舉行頒獎典禮&#xff0c;比亞迪海鷗&#xff08;BYD SEAGULL/BYD DOLPHIN MINI&#xff09;摘得“2025世界城市車&#xff08;World Urban Car&#xff09;”…

人工智能數學基礎(五):概率論

概率論是人工智能中處理不確定性的核心工具&#xff0c;它為機器學習、數據科學和統計分析提供了理論基礎。本文將深入淺出地介紹概率論的重要概念&#xff0c;并結合 Python 實例&#xff0c;幫助讀者更好地理解和應用這些知識。資源綁定附上完整資源供讀者參考學習&#xff0…

MCP協議:自然語言與結構化數據的雙向橋梁 ——基于JSON-RPC 2.0的標準化實踐

MCP協議&#xff1a;自然語言與結構化數據的雙向橋梁 ——基于JSON-RPC 2.0的標準化實踐 一、MCP的本質&#xff1a;標準化共識的協議框架 MCP&#xff08;Model Context Protocol&#xff09;是Anthropic于2024年提出的開放通信協議&#xff0c;其核心價值在于建立自然語言…

vue+django農產品價格預測和推薦可視化系統[帶知識圖譜]

文章結尾部分有CSDN官方提供的學長 聯系方式名片 文章結尾部分有CSDN官方提供的學長 聯系方式名片 關注B站&#xff0c;有好處&#xff01; ?編號&#xff1a;D010 vue django 前后端分離架構搭建的系統帶有推薦算法、價格預測、可視化、知識圖譜數據從爬蟲獲取可以更新到最…

verilog_testbench技巧

forever語句 forever begin state; end 一直執行state repeat&#xff08;n&#xff09; begin state; end 執行state&#xff0c;n次 force語句對雙向端口進行輸入賦值。 與wait 是邊沿觸發&#xff0c;wait是電平觸發 仿真控制語句與系統任務描述 $stop停止仿真…

實時時鐘(RTC)從原理到實戰

1. RTC技術深度解析 1.1 RTC核心概念 實時時鐘&#xff08;Real-Time Clock&#xff0c;RTC&#xff09;是嵌入式系統中獨立于主處理器的特殊計時電路&#xff0c;其核心功能在于提供持續可靠的時間基準。與CPU時鐘不同&#xff0c;RTC具有以下關鍵特性&#xff1a; 獨立供電…

pyspark將hive數據寫入Excel文件中

不多解釋直接上代碼&#xff0c;少python包的自己直接下載 #!/usr/bin/env python # -*- encoding: utf-8 -*- from pyspark.sql import SparkSession import pandas as pd import os# 初始化 SparkSession 并啟用 Hive 支持 spark SparkSession.builder \.appName("sel…

Stack--Queue 棧和隊列

一、Stack--棧 1.1 什么是棧&#xff1f; 堆棧是一種容器適配器&#xff0c;專門設計用于在 LIFO 上下文&#xff08;后進先出&#xff09;中運行&#xff0c;其中元素僅從容器的一端插入和提取。 第一個模版參數T&#xff1a;元素的類型&#xff1b;第二個模版參數Container…

用Python做有趣的AI項目1:用 TensorFlow 實現圖像分類(識別貓、狗、汽車等)

項目目標 通過構建卷積神經網絡&#xff08;CNN&#xff09;&#xff0c;讓模型學會識別圖片中是什么物體。我們將使用 CIFAR-10 數據集&#xff0c;它包含 10 類&#xff1a;飛機、汽車、鳥、貓、鹿、狗、青蛙、馬、船和卡車。 &#x1f6e0;? 開發環境與依賴 安裝依賴&…