張慧 肖光華 王寒芳
關(guān)鍵詞:Python;Selenium;自動(dòng)化測(cè)試;回歸測(cè)試
中圖分類號(hào):TP3 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2023)12-0051-03
0 引言
隨著軟件技術(shù)的逐漸成熟,新技術(shù)產(chǎn)生的同時(shí),促進(jìn)了軟件測(cè)試的改變。由于現(xiàn)在的社會(huì)的變化,敏捷開(kāi)發(fā)模式逐漸成熟,同時(shí)它對(duì)軟件質(zhì)量可以進(jìn)行持續(xù)、及時(shí)和全面的跟蹤,很多傳統(tǒng)的開(kāi)發(fā)模式正在逐步朝著敏捷開(kāi)發(fā)模式轉(zhuǎn)變。隨著敏捷開(kāi)發(fā)模式的使用,版本的發(fā)布越來(lái)越頻繁。同時(shí)回歸測(cè)試中的代碼也變得越來(lái)越頻繁。因此市場(chǎng)上逐漸開(kāi)發(fā)出了一些成熟的自動(dòng)化測(cè)試框架[1],例如robotframework等,雖然利用這些工具,可以提供測(cè)試的工作效率,但是這些框架也有一定的局限性,必須按照工具原有的規(guī)則來(lái)編寫測(cè)試用例,這類自動(dòng)化測(cè)試用例往往存在冗余度高和復(fù)用性地的問(wèn)題。本次自動(dòng)化平臺(tái)設(shè)計(jì)解決了這樣的問(wèn)題,根據(jù)測(cè)試的實(shí)際需求,實(shí)現(xiàn)一個(gè)方便維護(hù)、減少冗余、提高自動(dòng)化測(cè)試用例的復(fù)用性自動(dòng)化框架結(jié)構(gòu)。
1 自動(dòng)化測(cè)試的意義
當(dāng)軟件的功能比較成熟、穩(wěn)定性較好的時(shí)候,軟件版本迭代頻繁,改動(dòng)性較小,主流程測(cè)試用例在每次迭代更新時(shí)都需要執(zhí)行,比較費(fèi)人力和時(shí)間。如果能將這些測(cè)試用例進(jìn)行自動(dòng)化測(cè)試用例,讓它自動(dòng)執(zhí)行,那么就會(huì)節(jié)省成本。每次版本更新的時(shí)候,這些自動(dòng)化測(cè)試用例可以在回歸測(cè)試中自動(dòng)執(zhí)行。尤其是在測(cè)試周期很短的大項(xiàng)目中,回歸測(cè)試用例較多,幾百個(gè)測(cè)試用例回歸執(zhí)行時(shí),手動(dòng)執(zhí)行可能需要一個(gè)工程師十天的工作量,但是在自動(dòng)化測(cè)試用例則可能幾個(gè)小時(shí)就可以執(zhí)行完畢。同時(shí)自動(dòng)化測(cè)試用例的時(shí)間靈活。較多自動(dòng)化運(yùn)行上千個(gè)測(cè)試用例的時(shí)間段,且時(shí)間靈活,且能夠在非工作內(nèi)執(zhí)行,充分利用了公司的資源。同時(shí)自動(dòng)化的腳本沒(méi)有變化,重復(fù)執(zhí)行時(shí)可保證原有功能不發(fā)生變化。
2 自動(dòng)化測(cè)試的相關(guān)技術(shù)
2.1 Python 語(yǔ)言與自動(dòng)化測(cè)試
Selenium是應(yīng)用在Web類型的自動(dòng)化測(cè)試工具。它的能夠支持Java、Python、C#、PHP Perl和Ruby等多種語(yǔ)言,所以不同的語(yǔ)言需要安裝對(duì)應(yīng)的Selenium庫(kù)包文件。Python語(yǔ)言是一個(gè)極簡(jiǎn)的語(yǔ)言,它非常簡(jiǎn)單容易上手。近年來(lái),由于Python語(yǔ)言的諸多優(yōu)點(diǎn):簡(jiǎn)潔性、易讀性和可擴(kuò)展性,使得Python語(yǔ)言越來(lái)越成熟,越來(lái)越多的公司選用了Python語(yǔ)言。雖然Java語(yǔ)言在市場(chǎng)上仍然占有很大的分量,但是在未來(lái)的一段時(shí)間內(nèi),Python占的比重將越來(lái)越高。在自動(dòng)化測(cè)試語(yǔ)言的選擇中,越來(lái)越多的自動(dòng)化測(cè)試工程師選擇了Python語(yǔ)言。它不需要讓開(kāi)發(fā)或測(cè)試人員搞明白語(yǔ)言本身,能夠讓測(cè)試功能師能很快上手,花更多的時(shí)間在研究問(wèn)題上。
2.2 Selenium 自動(dòng)化測(cè)試工具
Selenium是目前使用最廣泛的一個(gè)Web用戶界面自動(dòng)化測(cè)試套件之一。它可以使用支持的任何一種編程語(yǔ)言進(jìn)行編寫,同時(shí)可以在大部分的Web瀏覽器中直接運(yùn)行。它對(duì)應(yīng)了多種語(yǔ)言,其中Python和C# 兩種Selenium Web驅(qū)動(dòng)目前使用最多的。
2.3 Pytest 單元測(cè)試框架
test相Py比te起st是來(lái),P更yth加on簡(jiǎn)的潔一和種高單效元。測(cè)它試有框以架下,它的幾與點(diǎn)un優(yōu)it?點(diǎn):上手簡(jiǎn)單,入門容易,文檔也很豐富,文檔中也提供了很多的示例進(jìn)行參考;能夠很好地支持測(cè)試用例集和測(cè)試用例的運(yùn)行;支持參數(shù)化;在執(zhí)行的過(guò)程中可以跳過(guò)測(cè)試用例,或者將預(yù)定失敗的測(cè)試用例標(biāo)記為失?。恢С种貜?fù)執(zhí)行失敗的用例;能夠生成HTML 測(cè)試報(bào)告,還可以與Allure相結(jié)合生成好看的測(cè)試報(bào)告;可以自定義擴(kuò)展第三方插件。
2.4 Allure
Allure是一個(gè)非常靈活的輕量級(jí)開(kāi)源測(cè)試框架,它能夠支持Pytest。同時(shí)有上手簡(jiǎn)單和易于集成的特點(diǎn)。在使用的時(shí)候通過(guò)語(yǔ)句“pytest.main (–alluredir report/result Demo.py)”,就會(huì)在當(dāng)前文件夾創(chuàng)建一個(gè)report文件夾,在report文件夾下創(chuàng)建result,生成json 類型的測(cè)試報(bào)告。通過(guò)語(yǔ)句os.system“( allure + gen? erator./report/result+‘-o‘+‘./report/result‘+-‘o‘+./report/html‘+--clean”)將json格式測(cè)試報(bào)告轉(zhuǎn)化為好看的HTML測(cè)試報(bào)告的命令字符串;并通過(guò)OS的System函數(shù)將字符串轉(zhuǎn)化為命令執(zhí)行。
3 自動(dòng)化測(cè)試平臺(tái)的設(shè)計(jì)
自動(dòng)化測(cè)試平臺(tái)的設(shè)計(jì),應(yīng)該有前端頁(yè)面,主要包含有用戶管理、測(cè)試用例管理和挑選待運(yùn)行的自動(dòng)化測(cè)試用例的功能[2]。測(cè)試用例管理能夠列舉出所有的測(cè)試用例,也能也能查看每個(gè)用例的運(yùn)行記錄。因此本W(wǎng)eb自動(dòng)化測(cè)試平臺(tái)采用的是前后端分離的模式進(jìn)行設(shè)計(jì)的,前端的內(nèi)容采用的是Vue框架來(lái)實(shí)現(xiàn)的,后端的業(yè)務(wù)通過(guò)Python和Selenium編寫的自動(dòng)化框架實(shí)現(xiàn)[3],數(shù)據(jù)庫(kù)的存儲(chǔ)使用的MySQL數(shù)據(jù)庫(kù)來(lái)實(shí)現(xiàn)的,主要用來(lái)存儲(chǔ)用戶信息和測(cè)試用例的執(zhí)行結(jié)果,如圖1所示。
4 自動(dòng)化測(cè)試平臺(tái)實(shí)現(xiàn)
4.1 前端功能實(shí)現(xiàn)
自動(dòng)化測(cè)試平臺(tái)的前端主要是現(xiàn)實(shí)測(cè)試用例集以及其下面的測(cè)試用例,在前端頁(yè)面中,測(cè)試人員可以根據(jù)需要挑選合適的自動(dòng)化測(cè)試用例執(zhí)行。
前端由Vue完成,其中用戶的管理頁(yè)面包含創(chuàng)建用戶,用戶權(quán)限、編輯用戶等功能。數(shù)據(jù)則保存在數(shù)據(jù)庫(kù)之中。
前端頁(yè)面中也可以顯示用例集和測(cè)試用例。首先便利測(cè)試用例文件夾下的所有文件,然后通過(guò)Py? thon中的dir()函數(shù),查看每個(gè)文件包含的全部成員(函數(shù)和類),記錄在文件中。通過(guò)采用讀取文件的方式,得到所有的測(cè)試用例集合以及測(cè)試用例,然后在前端頁(yè)面列舉出來(lái)[4]。
前端頁(yè)面也能自定義勾選選擇相關(guān)的測(cè)試用例集和測(cè)試用例進(jìn)行執(zhí)行,加入到會(huì)執(zhí)行列表中,進(jìn)行執(zhí)行。
4.2 后臺(tái)的實(shí)現(xiàn)
基于自動(dòng)化測(cè)試的分層思想,本文論述的自動(dòng)化測(cè)試在實(shí)現(xiàn)上分為4 層,分別為公共處理層、業(yè)務(wù)處理層、測(cè)試用例層、執(zhí)行結(jié)果表現(xiàn)層。
1) 公共處理層是一些通用的基本功能,如初始化配置文件、日志處理模塊、webdriver驅(qū)動(dòng)模塊、文件讀取與解析、常用的頁(yè)面操作方法封裝、數(shù)據(jù)庫(kù)操作封裝、生成隨機(jī)數(shù)據(jù)等功能,和測(cè)試結(jié)果數(shù)據(jù)或測(cè)試報(bào)告文件的存放信息。
2) 業(yè)務(wù)處理層是以PageObject設(shè)計(jì)模式展開(kāi),包含了以頁(yè)面為單位封裝的操作和屬性。包含了該頁(yè)面的每個(gè)頁(yè)面元素的定位屬性或者定位表達(dá)式,以及每個(gè)頁(yè)面元素的操作方法。在PageObject設(shè)計(jì)模式中,元素定位屬性和頁(yè)面元素的操作是分開(kāi)定義的,減少了自動(dòng)化框架的耦合性。當(dāng)頁(yè)面元素的屬性發(fā)生變化時(shí),只需要修改頁(yè)面元素的定位屬性,而不需要操作方法。該層的實(shí)現(xiàn)是為了測(cè)試用例執(zhí)行的時(shí)候簡(jiǎn)化調(diào)用和減少重復(fù)代碼。
3) 測(cè)試用例層含有測(cè)試用例套件和測(cè)試用例兩個(gè)部分。該層是自動(dòng)化測(cè)用例執(zhí)行的主入口。測(cè)試的數(shù)據(jù)是通過(guò)數(shù)據(jù)驅(qū)動(dòng)的方式發(fā)送,執(zhí)行時(shí)首先對(duì)數(shù)據(jù)驅(qū)動(dòng)方法進(jìn)行執(zhí)行,得到測(cè)試數(shù)據(jù)。數(shù)據(jù)的輸入采用的是Pytest框架的數(shù)據(jù)驅(qū)動(dòng),它是一款由Pytest自動(dòng)化測(cè)試框架自帶的一個(gè)數(shù)據(jù)驅(qū)動(dòng)。它是由pytest.emtrairzke()方法實(shí)現(xiàn)的 。Pytest.mark.param-etrize是pytest的一個(gè)內(nèi)置裝飾器,允許在class類和函數(shù)function上定義多組參數(shù)后者通過(guò)fixture裝飾器擴(kuò)展數(shù)據(jù)驅(qū)動(dòng)來(lái)實(shí)現(xiàn)驅(qū)動(dòng)。根據(jù)業(yè)務(wù)功能點(diǎn)編寫自動(dòng)化測(cè)試用例文檔,再在相應(yīng)的測(cè)試套件中,根據(jù)測(cè)試用例文檔編寫自動(dòng)化測(cè)試用例。最后獲取斷言的實(shí)際結(jié)果,與期望結(jié)果進(jìn)行斷言對(duì)比。在執(zhí)行自動(dòng)化測(cè)試用例的過(guò)程中,能夠在不同的測(cè)試套件中挑選自動(dòng)化測(cè)試用例進(jìn)行組合。
4)執(zhí)行結(jié)果表現(xiàn)層是通過(guò)pytest框架來(lái)實(shí)現(xiàn),Py-test是Python第三方的測(cè)試庫(kù)。提供了比unittest更加強(qiáng)大更靈活的測(cè)試機(jī)制。通過(guò)pytest-repeat和pytest-xdist框架實(shí)現(xiàn)了重復(fù)測(cè)試和并行測(cè)試。對(duì)于結(jié)果顯示本文使用的是pytest和allure來(lái)實(shí)現(xiàn)的,通過(guò)pytest和allure結(jié)合實(shí)現(xiàn)漂亮的測(cè)試報(bào)告。Allure是一個(gè)輕量級(jí)語(yǔ)言測(cè)試報(bào)告工具,它具有靈活性的特點(diǎn),能夠?qū)y(cè)試結(jié)果以簡(jiǎn)潔的報(bào)告呈現(xiàn)出來(lái)。同時(shí)也將測(cè)試用例的步驟生成了運(yùn)行日志模塊,可記錄測(cè)試用例的執(zhí)行過(guò)程和執(zhí)行情況,通過(guò)日志也可以查詢測(cè)試用例失敗的原因。也可以為自動(dòng)化測(cè)試用例的維護(hù)和優(yōu)化提供依據(jù)。同時(shí)有眾多的插件可以實(shí)現(xiàn)更多測(cè)試場(chǎng)景[5]。同時(shí),也將測(cè)試用例的執(zhí)行結(jié)果插入數(shù)據(jù)庫(kù)的結(jié)果表單中,以保存每次運(yùn)行的測(cè)試結(jié)果。
5 自動(dòng)化框架的應(yīng)用
5.1 被測(cè)系統(tǒng)簡(jiǎn)介
被測(cè)系統(tǒng)是一款醫(yī)藥批發(fā)網(wǎng)站W(wǎng)eb端,該網(wǎng)站主要包括了前臺(tái)和后臺(tái)兩個(gè)部分:前端商城的功能主要包括有用戶注冊(cè)、用戶登錄、商品列表、查詢商品、查看商品詳情、加入購(gòu)物車、購(gòu)物車頁(yè)面、提交訂單頁(yè)面、訂單詳情頁(yè)面、取消訂單、個(gè)人中心頁(yè)面,而后臺(tái)管理頁(yè)面則包括用戶管理、商品管理、訂單管理、營(yíng)銷活動(dòng)模塊等功能。
5.2 測(cè)試需求
本文將以用戶采購(gòu)藥品流程為例子,測(cè)試的步驟包括下面幾點(diǎn)。
1) 用戶注冊(cè)
點(diǎn)擊注冊(cè)鏈接,進(jìn)入“用戶注冊(cè)”頁(yè)面,在該頁(yè)面中填入用戶名和密碼等必填信息,點(diǎn)擊提交按鈕。由于驗(yàn)證碼需要手機(jī)查看,所以本例子中使用的是開(kāi)發(fā)設(shè)定的固定驗(yàn)證碼來(lái)解決該問(wèn)題。
2) 用戶登錄
在用戶登錄頁(yè)面中,使用創(chuàng)建好的用戶名、密碼和驗(yàn)證碼進(jìn)行登錄。登錄頁(yè)面中的驗(yàn)證碼,與用戶注冊(cè)頁(yè)面相同,采用的是開(kāi)發(fā)設(shè)定的固定驗(yàn)證碼。
3) 查詢商品
登錄成功后,進(jìn)入列表頁(yè)面,在商品查詢頁(yè)面上輸入商品信息,點(diǎn)擊查詢按鈕。
4) 驗(yàn)證商品價(jià)格
查詢到商品后,驗(yàn)證該商品的原價(jià)與促銷價(jià)是否正確。
5) 加入購(gòu)物車
將該商品加入購(gòu)物車,在購(gòu)物車頁(yè)面中,驗(yàn)證該商品的原價(jià)和促銷價(jià)格。
6) 提交訂單。
在購(gòu)物車中勾選商品信息,然后點(diǎn)擊提交訂單按鈕,進(jìn)行下單操作。在訂單頁(yè)面中,驗(yàn)證該訂單提交成功。
5.3 測(cè)試過(guò)程
1) 構(gòu)建測(cè)試框架。
安裝測(cè)試環(huán)境,安裝Python環(huán)境,安裝相關(guān)的Py? thon庫(kù)包文件,pytest、selenium、allure。安裝MySQL同時(shí)創(chuàng)建好相關(guān)的數(shù)據(jù)庫(kù)表,安裝Vue 前端開(kāi)發(fā)架構(gòu)軟件。
2) 分析需求。
分析該條測(cè)試用例,涉及的頁(yè)面有用戶注冊(cè)頁(yè)面、用戶登錄頁(yè)面、查詢商品頁(yè)面,商品詳情頁(yè)面,購(gòu)物車頁(yè)面以及提交訂單頁(yè)面。在設(shè)計(jì)模式中涉及的PageObject應(yīng)該有6個(gè)頁(yè)面。
第一個(gè)頁(yè)面是用戶注冊(cè)頁(yè)面,其中包含的操作有:① 點(diǎn)擊注冊(cè)按鈕;② 用戶名的定位,用戶名的清除與輸入操作;③ 密碼的元素定位、密碼的清除與輸入操作;④ 驗(yàn)證碼的元素定位,驗(yàn)證碼的清除與輸入操作;⑤ 點(diǎn)擊注冊(cè)按鈕;⑥ 注冊(cè)成功彈框提示期望值獲取。
第二個(gè)頁(yè)面是用戶登錄頁(yè)面,該頁(yè)面中包含的操作有:① 點(diǎn)擊登錄按鈕;② 用戶名的定位,用戶名的清除與輸入操作;③ 密碼的元素定位、密碼的清除與輸入操作;④ 驗(yàn)證碼的元素定位,驗(yàn)證碼的清除與輸入操作;⑤ 點(diǎn)擊登錄按鈕;⑥ 登錄成功彈框提示期望值獲取。
第三個(gè)頁(yè)面是查詢商品頁(yè)面,在頁(yè)面中包含的操作有:① 按照傳入的參數(shù),獲取指定的商品所在的位置;② 得到商品的總條數(shù)。
第四個(gè)頁(yè)面是商品詳情頁(yè)面,在該頁(yè)面中包含的操作有:① 商品的名稱定位;② 商品的原價(jià)價(jià)格定位、商品的原價(jià)獲取操作;③ 商品的促銷價(jià)定位、商品的促銷價(jià)獲取操作;④ 加入購(gòu)物車。
第五個(gè)頁(yè)面是加入購(gòu)物車頁(yè)面,在該頁(yè)面中包含的操作有:① 定位商品的信息元素、點(diǎn)擊指定的商品加入購(gòu)物車;② 點(diǎn)擊“提交訂單”按鈕。
第六個(gè)頁(yè)面是提交訂單頁(yè)面,在該頁(yè)面中包含的操作有:① 定位付款方式位“余額抵扣”“確認(rèn)提交”元素;② 選擇付款方式為“余額抵扣”;③點(diǎn)擊“確認(rèn)提交”按鈕。
3)實(shí)現(xiàn)自動(dòng)化測(cè)試用例平臺(tái)。
系統(tǒng)模塊:醫(yī)藥批發(fā)網(wǎng)站,設(shè)計(jì)到的模塊有:用戶注冊(cè)頁(yè)、首頁(yè)、查詢商品頁(yè)面、商品詳情頁(yè)面、購(gòu)物車頁(yè)面和提交訂單頁(yè)面。
概述:實(shí)現(xiàn)了一個(gè)訂單流程的測(cè)試用例:自動(dòng)化測(cè)試用例中用戶注冊(cè)、用戶登錄以及下訂單的一個(gè)測(cè)試用例。
目標(biāo):驗(yàn)證一個(gè)訂單的流程的實(shí)現(xiàn)。通過(guò)標(biāo)準(zhǔn)的框架結(jié)構(gòu)為前提,通過(guò)PageObject框架結(jié)構(gòu),將每個(gè)頁(yè)面分成了數(shù)據(jù)、元素和動(dòng)作腳本三個(gè)腳本。使腳本易讀取,易集成且便于維護(hù),相關(guān)的方法還能重復(fù)調(diào)用,降低了維護(hù)的成本,同時(shí)也提高了代碼利用率[5]。在pytest中編寫測(cè)試用例,通過(guò)頁(yè)面元素的獲取,得到實(shí)際結(jié)果,與期望結(jié)果進(jìn)行對(duì)比,來(lái)驗(yàn)證測(cè)試用例結(jié)果。自動(dòng)化的測(cè)試用例的結(jié)果報(bào)告通過(guò)Allure可以生成。
對(duì)應(yīng)的測(cè)試用例步驟如下:
①建立WebDriver初始類,其中包含了初始化瀏覽器驅(qū)動(dòng)。同時(shí)打開(kāi)初始化界面“首頁(yè)”;
②新建一個(gè)Common文件,在該文件中新建二個(gè)類:第一個(gè)類是建立用于存放元素操作的基本操作的類,例如:點(diǎn)擊、清除、先清除再輸入數(shù)據(jù)、輸入數(shù)據(jù)、滑動(dòng)頁(yè)面、讀取頁(yè)面元素?cái)?shù)據(jù)、讀取頁(yè)面表格元素、點(diǎn)擊表格中指定列的元素。第二個(gè)類是建立用于存放文件讀取操作的類,例如:讀取excel和csv操作、讀取文件操作、寫入excel和csv文件操作、寫入文件操作。通過(guò)該類可以讀取和寫入文件數(shù)據(jù)。
③創(chuàng)建PageObject文件夾,在每個(gè)頁(yè)面中新建兩個(gè)文件,以供在測(cè)試用例中調(diào)用。一個(gè)用于存放數(shù)據(jù)和控件元素,另外一個(gè)用于存放頁(yè)面操作的文件。當(dāng)頁(yè)面元素的定位或者數(shù)據(jù)發(fā)生變化的時(shí)候,只需要更新該控件元素的路徑或數(shù)據(jù)值;
④創(chuàng)建TestCases文件平,創(chuàng)建測(cè)試用例集TestOrder類下創(chuàng)建測(cè)試方法test_order,該方法中用到的測(cè)試數(shù)據(jù)是通過(guò)pytest.mark.parametrize()來(lái)設(shè)置的,在本測(cè)試用例中用到的測(cè)試數(shù)據(jù)有:用戶名、密碼、驗(yàn)證碼、藥品名“感冒藥”,商品商量為“1”,單價(jià)為“20”,促銷價(jià)為“18”。
在該類中依次調(diào)用如下方法:
①點(diǎn)擊注冊(cè)鏈接:調(diào)用“首頁(yè)”中的點(diǎn)擊“注冊(cè)”方法;
②注冊(cè)新用戶:調(diào)用“注冊(cè)”頁(yè)面中的先清除再輸入用戶名、密碼和確認(rèn)密碼,點(diǎn)擊“確定”按鈕方法;
③登錄用戶:調(diào)用“首頁(yè)”中點(diǎn)擊“登錄”按鈕,調(diào)用登錄框中的先清除再輸入用戶名和密碼操作,調(diào)用登錄框中的點(diǎn)擊“登錄”按鈕操作;
④查詢商品,調(diào)用“首頁(yè)”中的先清除和再輸入值搜索框方法,調(diào)用“首頁(yè)”中的點(diǎn)擊“查詢”按鈕方法;
⑤驗(yàn)證查詢結(jié)果:商品詳情頁(yè)面,調(diào)用“查詢結(jié)果”中的點(diǎn)擊“第一行記錄”方法,進(jìn)入商品詳情頁(yè);調(diào)用商品詳情頁(yè)中的獲取商品名稱方法,得到期望的商品名稱。在這一步中進(jìn)行第一次驗(yàn)證,驗(yàn)證商品是否查詢正確;
⑥加入購(gòu)物車:調(diào)用“商品詳情”頁(yè)中的點(diǎn)擊“加入購(gòu)物車”圖標(biāo);調(diào)用“商品詳情”頁(yè)中的點(diǎn)擊“購(gòu)物車”圖標(biāo);
⑦下訂單:調(diào)用“購(gòu)物車”頁(yè)面中的點(diǎn)擊“提交訂單”按鈕;
⑧驗(yàn)證訂單是否提交成功:調(diào)用“訂單”頁(yè)面中的點(diǎn)擊“待付款”訂單頁(yè)面;調(diào)用“代付款”頁(yè)面中的訂單信息,如:商品與價(jià)格,驗(yàn)證訂單是否正確。
在Vue實(shí)現(xiàn)的前端頁(yè)面中列出所有的測(cè)試用例方法,并勾選出相關(guān)的測(cè)試用例集下的測(cè)試用例,寫入記事本文件中。新建執(zhí)行run_testcases 的執(zhí)行文件,在該文件中通過(guò)pytest.main中的方法“pytest.main (‘[ -s,‘-v,‘-k ,‘從記事本中讀取相關(guān)的測(cè)試方法路徑,‘–alluredir,‘./report/xml])”運(yùn)行指定的測(cè)試用例,并將結(jié)果生成allure數(shù)據(jù)集合,再通過(guò)Python 命令os. system“( allure generate ./temp -o ./report -- clean”)生成相關(guān)的allure 數(shù)據(jù)集合生成allure 報(bào)告文檔。
6 結(jié)束語(yǔ)
隨著軟件技術(shù)越來(lái)越成熟,Web應(yīng)用的發(fā)展通常采用了迭代快和周期短的敏捷開(kāi)發(fā)模式,Web自動(dòng)化測(cè)試用例的發(fā)展的也成為必然趨勢(shì),隨著自動(dòng)化測(cè)試技術(shù)的深入,如何有效地提高內(nèi)部測(cè)試人員的效率,降低成本,具有很高的使用價(jià)值,但是該Web自動(dòng)化平臺(tái)依然還有很多值得改進(jìn)的地方,例如:加入Jen? kins和Ant技術(shù)后,能夠每日在指定的時(shí)間自動(dòng)運(yùn)行測(cè)試用例,這樣能使運(yùn)行時(shí)間更加靈活,希望在日后的使用過(guò)程中更加完善。