前言
Selenium 自動(dòng)化測(cè)試方案
基礎(chǔ)方案:
使用unittest,主要是用 TestCase(測(cè)試用例);
使用模塊化(基本的模塊化,抽取公共模塊);
使用數(shù)據(jù)驅(qū)動(dòng)的方式(主要包括 數(shù)據(jù)庫(kù)的形式 和文件讀取 );
定制執(zhí)行需要測(cè)試的用例,使用unittest,主要用的是TestSuite(測(cè)試套件)、和 TextTestRunner(文本測(cè)試運(yùn)行器)[或者HTMLTestRunner]
生成測(cè)試報(bào)告(發(fā)送報(bào)告到指定郵箱)
方案實(shí)現(xiàn)的具體
使用PyCharm創(chuàng)建新的PurePython項(xiàng)目
在項(xiàng)目中創(chuàng)建如下的文件夾(python package)
TestCase
Data
Common
TestRunner
Report
分別實(shí)現(xiàn)上述模塊
在Data中存放數(shù)據(jù),CSV文件,或者也可以放到數(shù)據(jù)中,使用數(shù)據(jù)驅(qū)動(dòng)
## 使用csv文件
csv.reader()
## 使用數(shù)據(jù)庫(kù)(MySQL),可以參考www.imooc.com的python操作MySQL的視頻
cur.fetchall()
在Common中,創(chuàng)建測(cè)試公共模塊,實(shí)現(xiàn)模塊化的操作
## __init__(self, driver: webdriver.Firefox, base_url)
self.common = RanzhiCommon(self.driver, self.base_url)
在TestCase創(chuàng)建自動(dòng)化測(cè)試用例,注意使用unittest.TestCase
def setUp()
def tearDown()
det test_xxx()
在TestRunner創(chuàng)建測(cè)試執(zhí)行器和測(cè)試套件,使用unittest.TestSuite和HTMLTestRunner(第三方)
test_suite = unittest.TestSuite()
test_suite.addTest(RanzhiLogonTc01("test_xxx"))
html_test_runner = HTMLTestRunner(stream=report_file, title="xxx", description="dddd)
html_test_runner.run(test_suite)
在項(xiàng)目根目錄創(chuàng)建main.py,作為測(cè)試項(xiàng)目的主入口,運(yùn)行測(cè)試。
檢查測(cè)試報(bào)告
Selenium 可能遇到的問題
<iframe>
框架
f1 = find_element_by_css_selector(frame)
switch_to.frame(f1)
<select>
下拉框
s1 = find_element_by_css_selector(select)
ss1 = Select(s1)
ss1.select_by_index(0)
ss1.select_by_value("人事部")
編碼問題 utf-8
時(shí)間等待問題 sleep(5)
單元測(cè)試框架
unittest
unittest.TestCase
前置條件
清理
測(cè)試過程步驟
斷言 assertEqual(期望值, 實(shí)際結(jié)果, 錯(cuò)誤提示)
運(yùn)行測(cè)試 test_開頭的方法
unittest.TestSuite
addTest(xxx("test_batch_login"))
自定義的添加測(cè)試用例,并執(zhí)行
unittest.TextTestRunner
run(suite)
執(zhí)行創(chuàng)建并維護(hù)好的測(cè)試套件
test_runner test_suite test_case
測(cè)試運(yùn)行器 測(cè)試套件 測(cè)試用例
模塊化操作:
面向?qū)ο蟮膶?shí)踐:
編寫一個(gè)類,類里面描述公共的方法;
實(shí)例化這個(gè)類,調(diào)用這個(gè)類的方法;
類的構(gòu)造方法,需要傳遞 webdriver.Firefox()
self.common = RanzhiCommon(self.browser, self.base_url)
數(shù)據(jù)驅(qū)動(dòng)測(cè)試:
讀取csv,循環(huán)每一行數(shù)據(jù)進(jìn)行操作
讀取MySQL,用例存到MySQL中
中文編碼的問題
# coding="utf-8"
讀csv的時(shí)候,添加 encoding=‘utf-8’
csv.reader(open("xxx.csv", "r", –1, encoding="utf-8")
循環(huán)放到最外層
文件路徑在控制臺(tái)讀取不到的問題,需要用絕對(duì)路徑來指向文件
封裝WebDriver
避免第三方代碼的威脅,防止大批量修改測(cè)試用例
節(jié)約人力的成本(如果封裝以后,不需要每個(gè)自動(dòng)化測(cè)試工程師都會(huì)WebDriver)
標(biāo)準(zhǔn)化自動(dòng)化用例的操作,只需要調(diào)用公共的標(biāo)準(zhǔn)模塊就好。
下面是我整理的2023年最全的軟件測(cè)試工程師學(xué)習(xí)知識(shí)架構(gòu)體系圖 |
一、Python編程入門到精通
二、接口自動(dòng)化項(xiàng)目實(shí)戰(zhàn)
三、Web自動(dòng)化項(xiàng)目實(shí)戰(zhàn)
四、App自動(dòng)化項(xiàng)目實(shí)戰(zhàn)
五、一線大廠簡(jiǎn)歷
六、測(cè)試開發(fā)DevOps體系
七、常用自動(dòng)化測(cè)試工具
八、JMeter性能測(cè)試
九、總結(jié)(尾部小驚喜)
要想登上人生巔峰,就別讓懶惰和畏懼成為阻礙!拋開疑慮,放下束縛,邁出勇往直前的步伐。只有敢于冒險(xiǎn)、堅(jiān)持奮斗,才能創(chuàng)造屬于自己的輝煌!
只要心中燃起堅(jiān)定的火焰,任何挑戰(zhàn)都能被征服;不停耕耘,終將收獲豐盛的果實(shí);在追求夢(mèng)想的路上,堅(jiān)持不懈才是通向成功的唯一途徑。文章來源:http://www.zghlxwxcb.cn/news/detail-541584.html
只有拼盡全力,才能超越極限;只有堅(jiān)持奮斗,才能創(chuàng)造輝煌;只有永不放棄,才能追尋夢(mèng)想;勇往直前,努力奮斗,讓未來的自己感動(dòng)自己!文章來源地址http://www.zghlxwxcb.cn/news/detail-541584.html
到了這里,關(guān)于干貨-卷起來,企業(yè)級(jí)web自動(dòng)化測(cè)試實(shí)戰(zhàn)落地(三)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!