前兩周組內(nèi)的小伙伴跟我說她現(xiàn)在測試的微信公眾號項(xiàng)目(保險)每次上新產(chǎn)品時測試起來很費(fèi)時,存在大量的重復(fù)操作(點(diǎn)點(diǎn)點(diǎn)),手工測試每個產(chǎn)品可能需要半天到一天的時間,復(fù)雜的產(chǎn)品需要兩天。由于保險下單的過程中字段比較多,輸入費(fèi)勁的同時測試用例也很多(不同年齡段、工種、有無社保等),且!每個產(chǎn)品的頁面都有部分差異!
問我能否基于UI自動化提高她測試新產(chǎn)品的測試速度,同時用于上線時生產(chǎn)的驗(yàn)證。
因?yàn)槲覍戇^微信公眾號頁面的UI監(jiān)控腳本,也嘗試過基于appium的多機(jī)并發(fā)測試,于是我就想,能否搭建一個框架,讓小伙伴每次測試新產(chǎn)品的時候只要輸入測試數(shù)據(jù)+修改產(chǎn)品差異部分代碼,然后框架分發(fā)給不同的手機(jī)去執(zhí)行,最后展示測試報(bào)告?
一個case大約3-5分鐘,三臺手機(jī)執(zhí)行測話三個新產(chǎn)品半天就能測完。
下面是放到j(luò)enkins上運(yùn)行demo的測試報(bào)告。
下面是用例運(yùn)行失敗時的界面,提供截圖、重試、case日志以及appium的日志。
JAVA 版本1.8
appium-server 版本1.6.3
appium java-client 版本5.0.0-BETA8
testNG 用例組織
Allure2 測試報(bào)告
Jenkins 持續(xù)集成
Git 代碼管理
pages:沒有采用PO模式,頁面以接口的形式定義,頁面元素即為變量。
pageoptions:頁面功能封裝在pageoptions包中,封裝成靜態(tài)方法。
testcase:繼承BaseDriver,driver初始化后即可執(zhí)行測試。
util:appiumserver啟動工具類、失敗自動截圖等
下面是每個package內(nèi)的代碼。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="簡易險測試用例集" parallel="tests">
<listeners>
<listener class-name="com.cpeoc.jyx.util.AllureReporterListener"/>
</listeners>
<test name="wangjiu">
<!-- 這里是手機(jī)信息 -->
<parameter name="deviceName" value="28a38e6f" />
<parameter name="platformVersion" value="5.1" />
<!-- 這里是要調(diào)試的測試類 -->
<classes>
<class name="com.cpeoc.jyx.testcases.index.TestCitySelect" />
<class name="com.cpeoc.jyx.testcases.index.TestCityDG" />
<class name="com.cpeoc.jyx.testcases.insBuy.TestBaiWanAnXinLiao"/>
</classes>
</test>
<test name="miaomiao">
<!-- 這里是手機(jī)信息 -->
<parameter name="deviceName" value="fe3123d2" />
<parameter name="platformVersion" value="7.0" />
<!-- 這里是要調(diào)試的測試類 -->
<classes>
<class name="com.cpeoc.jyx.testcases.index.TestCityQG" />
<class name="com.cpeoc.jyx.testcases.insBuy.TestBaiWanAnXinLiao"/>
</classes>
</test>
</suite>
當(dāng)然,里邊還有很多具體的業(yè)務(wù)和代碼實(shí)現(xiàn)沒有介紹,只是給有需要的同學(xué)一點(diǎn)借鑒,歡迎交流。
聯(lián)系客服