01POM、關(guān)鍵字驅(qū)動(dòng)诈铛、數(shù)據(jù)驅(qū)動(dòng)乙各、標(biāo)記

?1、分層設(shè)計(jì)思想幢竹、關(guān)鍵字驅(qū)動(dòng)耳峦、數(shù)據(jù)驅(qū)動(dòng)

1.1PO模式PageLocator、PageObjects焕毫、TestCases

例如:把30個(gè)功能封裝起來蹲坷,有500個(gè)功能測試用例,按照業(yè)務(wù)場景從30個(gè)頁面當(dāng)中調(diào)用需要的頁面即可咬荷。PO模式冠句,全稱Page object,頁面對象模型

將頁面的元素定位和元素行為封裝成一個(gè)page類轻掩,實(shí)現(xiàn)頁面和測試用例的分離幸乒。

在測試用例中,需要調(diào)用頁面對象中的行為唇牧,組成測試用例罕扎。

優(yōu)勢:

(1)當(dāng)某個(gè)頁面元素發(fā)生變化時(shí)聚唐,只需要修改該頁面對象中的代碼即可,測試用例不需要修改腔召。

(2)提高代碼復(fù)用率杆查,結(jié)構(gòu)清晰,維護(hù)代碼容易臀蛛。

(3)測試用例發(fā)生變化時(shí)亲桦,不需要或者只需要修改少數(shù)頁面對象代碼即可。

分層:Testdatas-重用浊仆、不同的環(huán)境不同的數(shù)據(jù)

1.2數(shù)據(jù)驅(qū)動(dòng):ddt模塊客峭,每個(gè)用例啟動(dòng)會話/所有用例啟動(dòng)會話,盡量不依賴測試環(huán)境-選擇自己創(chuàng)建條件

盡量保證用例的獨(dú)立性

保證用例的穩(wěn)定性-連續(xù)運(yùn)行5次-jenkins-盡早加入持續(xù)集成

定位表達(dá)式的靈活的 抡柿、等待方面的處理

用例不宜復(fù)雜舔琅,拆成多個(gè)用例,考慮成本洲劣,選擇性變成自動(dòng)化用例 备蚓。部分前置或后置,用接口來代替

basepage:關(guān)鍵字封裝:等待囱稽、查找元素郊尝、點(diǎn)擊、輸入战惊、獲取文本虚循、獲取屬性、窗口切換样傍、iframe切換横缔、上傳、

元素的操作:等待衫哥、查找茎刚、操作

實(shí)現(xiàn):頁面當(dāng)中的每一個(gè)操作,都進(jìn)行了異常捕獲撤逢、失敗截圖膛锭、操作時(shí)間記錄、日志打印

Pageobjects當(dāng)中蚊荣,全部調(diào)用basepage提供的關(guān)鍵字初狰,來封裝業(yè)務(wù)函數(shù)

1.3pytest測試框架,更方便的篩選用例-冒煙/回歸互例,更方便的用例組織

特點(diǎn):1奢入、自動(dòng)發(fā)現(xiàn)測試用例test_*.py/*_test.py、test_的函數(shù)/Test類并沒有初始化函數(shù)中的test_(函數(shù))

2媳叨、assert斷言

3腥光、fixture(前置后置)測試會話級別(session)关顷、測試模塊(module)、測試類(class)武福、測試用例(function)

4议双、豐富的插件庫,allure庫

1.4Mark功能:

1捉片、標(biāo)簽名先注冊:pytest.ini [pytest] markes=smoke

2平痰、測試用例/測試類/測試模塊 測試用例:@pytest.mark.smoke

測試類/測試模塊 :pytest.mark=[pytest.mark.smoke,pytest.mark.loginn]待確認(rèn)

1.5pytest命令行:

1、pytest在按個(gè)目錄下運(yùn)行伍纫,那就在哪個(gè)目錄中去搜索用例

2觉增、根據(jù)標(biāo)簽過濾用例:-m標(biāo)簽名

3、-s -v 在控制臺當(dāng)中看到更詳細(xì)的用例運(yùn)行狀態(tài)

1.6pytest測試報(bào)告:

1翻斟、xml--跟jenkins集成逾礁,就是解讀xml文件

2、html--插件:pytest html 參數(shù):--html-../../(相對pytest的命令執(zhí)行目錄的相對路徑)

conftest.py

1访惜、共享前置后置

2嘹履、不同的包目錄當(dāng)中,可以有自己的conftest.py

3债热、定義前置后置

@pytest.fixture(scope="")

def func1():

#前置

yield [返回值]


1.7砾嫉、測試類/測試函數(shù) @pytest.mark.usefixture("函數(shù)名稱")

如果有返回值,那么把函數(shù)名稱作為測試 用例的參數(shù)即可窒篱,函數(shù)名稱-返回值

數(shù)據(jù)驅(qū)動(dòng):pytest參數(shù)化

1焕刮、@pytest.mark.parametries("param1",[1,2,3])

def test_1(param1):

pass

2、@pytest.mark.parametries("param1,param2",[(1,2),(3,4)])

def test_2(param1,param2):

pass

3墙杯、@pytest.mark.parametries("param1,param2",[1,2配并,3,4])

@pytest.mark.parametries("param2",[a,b])

def test_3(param1,param2):#兩個(gè)參數(shù)排列組合,有8組測試用例

pass

失敗重試機(jī)制:rerun高镐,插件:pytest-rerun pytest命令參數(shù)(pytest --rerun 5 --reruns-delay 1)

1.8pytest allure報(bào)告生成:

1溉旋、allure 命令環(huán)境安裝

2、pytest-安裝allure插件 命令參數(shù):--alluredir=../..(相對pytest執(zhí)行目錄的路徑)

3嫉髓、allure-serve

4观腊、jenkins進(jìn)一步集成:安裝jenkins的allure 插件

PageLocator、PageObjects算行、TestCase(conftest.py)梧油、TestDatas

common:basepage、logger州邢、工程路徑配置

outputs:日志儡陨、截圖、報(bào)告

main.py:框架入口

API:接口

2自動(dòng)化用例的規(guī)范

2.1自動(dòng)化運(yùn)行測試、測試用例組織迄委、測試報(bào)告生成褐筛、測試日志自動(dòng)生成类少、失敗截圖的自動(dòng)生成叙身、指定輸出路徑、提供入口

編寫規(guī)范:團(tuán)隊(duì)合作

文件命名規(guī)范:函數(shù)命名規(guī)范硫狞、通用的英文名稱(login,action)

元素定位規(guī)范:非絕對定位信轿、定期互相檢查

按模塊分層次:事先搭好

良好的 注釋

2.2pytest收集測試用例的規(guī)則:

1、符合命名規(guī)則test_*.py? *_test.py

2残吩、以test_開頭的函數(shù)名

3财忽、以Test開頭的測試類(沒有_init_函數(shù)),以test開頭的函數(shù)

mark:打標(biāo)簽方法:@pytest.mark.標(biāo)記名泣侮,運(yùn)行用例的時(shí)候可根據(jù)標(biāo)簽名來過濾用例? @pytest.mark

fixture:主要目的是為了提供一種可靠和重復(fù)性的手段去執(zhí)行那些基本的操作

用例執(zhí)行時(shí)清理和準(zhǔn)備 即彪,unnitest中指那些:setup(),teardown(),classSetup()classTeardown()

定義:函數(shù)類聲明時(shí),前面加上@pytest.fixture

區(qū)分環(huán)境準(zhǔn)備和環(huán)境清理使用yield,yield后面的代碼就是環(huán)境清理的

fixture設(shè)置返回值:yield 返回值

contest.py 定義公共的fixture活尊,多個(gè)測試類中都可以調(diào)用隶校,pytest提供了confest.py文件,可以將fixture定義在此文件中蛹锰,運(yùn)行時(shí)不需要導(dǎo)入這個(gè)文件深胳,自動(dòng)去查找,找到對應(yīng)的fixture

2.4編寫自動(dòng)化測試用例應(yīng)遵循的原則:

(1)一個(gè)用例為一個(gè)完整的場景铜犬,從用戶登錄到退出并關(guān)閉網(wǎng)頁

(2)一個(gè)用例只為驗(yàn)證一個(gè)功能點(diǎn)舞终,不要試圖在用戶登錄系統(tǒng)后把所有功能都驗(yàn)一遍。

(3)盡量少的編輯逆向邏輯用例癣猾,例如手機(jī)號輸錯(cuò)有幾十種敛劝,另一方面自動(dòng)化腳本比較脆弱,對于復(fù)雜的逆向邏輯實(shí)現(xiàn)容易出錯(cuò)

(4)用例與用例之間避免出現(xiàn)依賴

(5)一條用例執(zhí)行完成測試之后需要對測試場景進(jìn)行還原纷宇,以免影響其他用例的執(zhí)行攘蔽。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市呐粘,隨后出現(xiàn)的幾起案子满俗,更是在濱河造成了極大的恐慌,老刑警劉巖作岖,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件唆垃,死亡現(xiàn)場離奇詭異,居然都是意外死亡痘儡,警方通過查閱死者的電腦和手機(jī)辕万,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人渐尿,你說我怎么就攤上這事醉途。” “怎么了砖茸?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵隘擎,是天一觀的道長。 經(jīng)常有香客問我凉夯,道長货葬,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任劲够,我火速辦了婚禮震桶,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘征绎。我一直安慰自己蹲姐,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布人柿。 她就那樣靜靜地躺著柴墩,像睡著了一般。 火紅的嫁衣襯著肌膚如雪顷扩。 梳的紋絲不亂的頭發(fā)上拐邪,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天,我揣著相機(jī)與錄音隘截,去河邊找鬼扎阶。 笑死,一個(gè)胖子當(dāng)著我的面吹牛婶芭,可吹牛的內(nèi)容都是我干的东臀。 我是一名探鬼主播,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼犀农,長吁一口氣:“原來是場噩夢啊……” “哼惰赋!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起呵哨,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤赁濒,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后孟害,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體拒炎,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年挨务,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了击你。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片玉组。...
    茶點(diǎn)故事閱讀 38,137評論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖丁侄,靈堂內(nèi)的尸體忽然破棺而出惯雳,到底是詐尸還是另有隱情,我是刑警寧澤鸿摇,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布石景,位于F島的核電站,受9級特大地震影響户辱,放射性物質(zhì)發(fā)生泄漏鸵钝。R本人自食惡果不足惜糙臼,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一庐镐、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧变逃,春花似錦必逆、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至凰棉,卻和暖如春损拢,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背撒犀。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工福压, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人或舞。 一個(gè)月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓荆姆,卻偏偏與公主長得像,于是被迫代替她去往敵國和親映凳。 傳聞我的和親對象是個(gè)殘疾皇子胆筒,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評論 2 345

推薦閱讀更多精彩內(nèi)容