學習目標:
- 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實現自動化測試的核心步驟