Part-Selenium-1

1.在瀏覽器中的console輸入:幫助定位css

> $x('xpath表達式')html

> $('css表達式')java

2.driverpython

> chrome driver: https://npm.taobao.org/mirrors/chromedriverandroid

> firefox:https://github.com/mozilla/geckdriver/realeases/tag/v0.24.0ios

3.簡易的頁面性能git

> raw_json = webdriver.execute_script("return JSON.stringify(window.performance.timing)"),返回的內容,比requests多,有些事它拿不到的github

4.remote serverweb

> 下載selenium server,啓動算法

> 經過webdriver.remote()來鏈接到服務器

5.UI自動化測試策略

> 核心業務自動化

> 接口測試是否能夠保證,能夠,ui測試能夠適當弱化

> 涉及用戶交互的重要功能,仍然能須要使用UI自動化測試保證

6.測試痛點

> 快速迭代中自動化用例吃力

    沒有采用po模式,致使自動化用例維護成本大

    對自動化框架掌握程度不夠

> 測試內容太多致使手工測試沒法充分覆蓋

    界面字段正確性

    接口正確性:後端接口傳輸數據的變化和內容

    專項測試迴歸難度大:內存泄漏,健壯性測試,弱網等  測試過程太多

    迴歸工做量大,不迴歸又會漏測

改進:

>  自動化:覆蓋主要業務的right path,縮小規模儘可能下降維護成本

>  手工:覆蓋新功能測試,探索性測試

> 遍歷測試手段:code less:用例維護成本降到最低

                            automate:儘量的自動化覆蓋迴歸業務

自動遍歷需求:可控,可定製

結果分析:點擊先後截圖對比,結果的數據建模,新老版本的diff,app結構思惟導圖展現

monkey:https://developer.android.com/studio/test/monkey

adb shell monkey -p com.ebo.home/com.ebo.home.Launcher --throttle 1000 --pct-touch 50 -v 500 

> throttel,每一個時間的間隔時間

> pct-touch,touch時間的佔比

> -v  500,500次事件

> -s  指定種子值

monkeyrunner,功能較弱,使用python代碼中調用java,不建議使用

Maxim:

高速uiautomator控件解析算法的Android Monkey, 每秒10-15個Action Event。實現快速DFS算法的Android Monkey , 每秒 5個Action Event。

git clone https://github.com/zhangzhao4444/Maxim.git
cd Maxim
adb push framework.jar /sdcard
adb push monkey.jar /sdcard
adb shell CLASSPATH=/sdcard/monkey.jar:/sdcard/framework.jar exec app_process /system/bin tv.p.test.monkey.Monkey -p com.xueqiu.android --uiautomatormix --running-minutes 5 -v -v

AppCrawler:

Usage: appcrawler [options]

-a, --app <value> Android或者iOS的文件地址, 能夠是網絡地址, 賦值給appiumapp選項
-e, --encoding <value> set encoding, such as UTF-8 GBK
-c, --conf <value> 配置文件地址
-p, --platform <value> 平臺類型android或者ios, 默認會根據app後綴名自動判斷
-t, --maxTime <value> 最大運行時間. 單位爲秒. 超過此值會退出. 默認最長運行3個小時
-u, --appium <value> appiumurl地址
-o, --output <value> 遍歷結果的保存目錄. 裏面會存放遍歷生成的截圖, 思惟導圖和日誌
--capability k1=v1,k2=v2...
appium capability選項, 這個參數會覆蓋-c指定的配置模板參數, 用於在模板配置之上的參數微調
-r, --report <value> 輸出htmlxml報告
--template <value> 輸出代碼模板
--master <value> masterdiff.yml文件地址
--candidate <value> candidate環境的diff.yml文件
--diff 執行diff對比
-vv, --verbose 是否展現更多debug信息
--demo 生成demo配置文件學習使用方法
--help
示例
appcrawler -a xueqiu.apk
appcrawler -a xueqiu.apk --capability noReset=true
appcrawler -c conf/xueqiu.json -p android -o result/
appcrawler -c xueqiu.json --capability udid=[你的udid] -a Snowball.app
appcrawler -c xueqiu.json -a Snowball.app -u 4730
appcrawler -c xueqiu.json -a Snowball.app -u http://127.0.0.1:4730/wd/hub

#生成demo例子
appcrawler --demo

#啓動已經安裝過的app
appcrawler --capability "appPackage=com.xueqiu.android,appActivity=.view.WelcomeActivityAlias"

#從已經結束的結果中從新生成報告
appcrawler --report result/

#新老版本對比
appcrawler --candidate result/ --master pre/ --report ./
java -jar appcrawler-2.4.0-jar-with-dependencies.jar --capability "appPackage=com.xueqiu.android,appActivity=.view.WelcomeActivityAlias"
java -jar appcrawler-2.4.0-jar-with-dependencies.jar --demo
#把生成的demo.yaml文件重命名demo_1.yaml
java -jar appcrawler-2.4.0-jar-with-dependencies.jar -c demo_1.yml1.執行參數與配置文件> capability設置:與appium徹底一致> testcase:用於啓動app後執行基礎測試用例> selectedList:遍歷範圍設定> triggerActions:特定條件觸發執行動做的設置執行參數比配置文件優先級別高2.capability:appPackage:""appActivity:""app:""appium:"http://127.0.0.1:4723/wd/hub"noReset:trueautomationName:uiautomator2dontStopAppOnReset:true3.自動化支持testcase>testcase的完整形態:i.given:全部的先決條天,when:先決條件成立後的行爲,then:斷言集合autoCrawl:truetestcase: name:demo1 steps: - when: xpath://.... action:driver.swipe(1,2,3,4) - when: xpath://... action:driver.... - xpath:登陸 action:click then: - //*[contains(@text, "密碼")]testcase的簡寫形態: xpath:對應when裏的xpath action:對應when裏的action定位模式:xpath,正則,包含action:back後退backApp回退到當前的app,默認等價與back行爲monkey隨機事件xxx()執行代碼Thread.sleep(3000)driver.swipe(1,2,3,4)clicklongTap非以上全部行爲是輸入 xx ddd4.自動遍歷SelectedList:指定遍歷範圍,看demo.yaml中包含,button,文本(其clickable=true),圖片等firstList:優先遍歷lastList:最後遍歷backButton:當素有元素都被點擊後默認後退按鈕triggerAction:特定事件xpathAttributes:xpath默認有哪些屬性,通常要去掉instanceblackList:黑名單maxDepth:最大遍歷深度5.參數-c 指定配置文件-o /tmp/1 指定輸出結果路徑
本站公眾號
   歡迎關注本站公眾號,獲取更多信息