- APP測試邏輯
在app編寫自動化測試用例時,通常會出現只是簡單的點點點過程,然而卻忽略了在實際的自動化實現過程中,軟件是對app元素的判斷來執行測試腳本。所以會出現在后期已經寫好自動化腳本之后還會對測試用例的更新。
- App在測試時,每個頁面的每個元素都需要點擊測試其功能性,相同頁面具有一致性,測試一次即可,但是相同按鈕在不同頁面,就需要再測試一次。
- Android怎么獲取元素的值?其屬性是什么?
答:Android也可以使用.getcondext獲取元素的值,且獲取的值屬性為string類型。
- 如何正確使用可點擊的id?
答:通常Android獲取id時,截取“id:”后面的即可。如果只存在id值,不存在id屬性通常有的前綴,這種情況下就無法通過id點擊。則需要通過其他方式對元素進行點擊。
- 如何判斷當前頁面是Native還是webview?
答:通過context獲取當前的頁面的類型。在有的頁面,會出現h5被強轉為Native頁面,這時的頁面則不支持webview操作,由于有的元素被隱藏,通過viewlist就很難點擊到相應的元素,所以只能通過tap點擊。
- 在點擊之后或者頁面跳轉之后需要設置等待時間,使用sleep無效怎么辦?
答:可以通過對靜態元素(點擊之后沒反應的元素)進行重復點擊,自帶的sleep只有在不存在該元素時才會執行。
- Android自動化測試存在appium獲取當前頁面元素數據太大導致app卡死嗎?
不會,數據量太大時,只是當前頁面無法獲取。
- Android自帶鍵盤刪除
newtest.clearById((AndroidDriver) driver,67,Id);
- 在IOS安裝過程中,有什么需要注意的?
答:appium、Xcode下載的版本需要對應,各個版本都有不同的支持,同時還要注意測試機的版本,對應情況如下:
- 安裝完成之后,如何配置環境變量?
答:mac本身是不存在環境變量配置文件的,需要新建。首先打開終端輸入命令touch .bashprofile新建文件,然后輸入命令vi .bash profile打開該文件,然后在文件內設置環境變量:??
export ANDROID_HOME=/Applications/Android-sdk-macosxexport APPIUM_HOME=/Applications/Appium.app/Contents/Resources/node_modules/export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Homeexport AAPT_HOME=/Applications/android-sdk-macosx/build-tools/export PATH=${PATH}:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$APPIUM_HOME/.bin:$AAPT_HOME/23.0.3/?? (如果是在mac上面實現android的自動化就需要這句)
然后在退出編寫的文件時注意,編寫完成后按esc并輸入wq再按ENTER以達到保存并退出,如果輸入q則不保存直接退出。
- 如何查看新的軟件的BundleID?
答:首先需要設置手機查看權限,在終端輸入命令:sudo chmod –R 777 /var/db/lockdown/,在輸入密碼時,輸入的密碼不會顯示,輸入完成后直接ENTER;再輸入:ideviceinstaller –l查看手機上軟件的信息,即可顯示軟件的BundleID。
- 如何獲取和判斷元素的值?
答:獲取元素的值為driver.findElementByXpath().getcondext。判斷元素的值可分為完全判斷和關鍵詞判斷,完全判斷使用equals。但是在實際的很多地方,元素值往往很長,或者只有一些關鍵詞不變,所以就需要使用contains進行關鍵詞判斷。
- IOS如何實現滑動操作?
答:由于appium的自身的限制,大概從1.3.7版本之后就不支持swipe操作,當前版本為1.4.13,因此在滑動方面存在很大約束。目前本人的操作是根據button屬性的XPath路徑點擊,但是這樣做是會出現報錯并結束程序執行,因此使用try catch使程序繼續執行,再根據得到的最新的顯示頁面對相應元素進行tap點擊。由于很多需要滑動的頁面不存在button屬性的XPath,所以在滑動方面受到了很大的限制。以下代碼可能適用于某些版本,可嘗試
#pythondiretion = up | down | left | right#標準指向滑動driver.execute_script("mobile: scroll", [{"direction":direction}])#基于控件的指向滑動driver.execute_script("mobile: scroll", [{"direction":direction, element: element.id}])
- 一些第一次能點擊,后面再點擊就出現錯誤的特殊情況及解決方法。
答:在點擊同一個XPath時,第二次無法點擊且報錯。可以通過對元素的其他屬性來點擊該元素,如name或者直接使用坐標進行tap。有的app前面版本支持根據name點擊,但是到了后期版本會出現該name明明能被打印出來,但是就是在點擊時報錯。可以通過XPath點擊或者直接tap。
- IOS的app在自動化測試的一些bug需要注意。
- 一個頁面的數據量太大導致app卡死
- 根據name點擊,會點擊成別的元素
- Mac OS X問題appium1.4無法在mac10.10以上使用
(1) 在終端打開文件 vi
?/Applications/Appium.app/Contents/Resources/node_modules/appium/lib/doctor/ios.js
(2) 在適當位置添加代碼else?if?(stdout.match('10.9')?!==?null)?{
????????this.osVersion?=?'10.9';
????????cb(null,?"Mac?OS?X?10.9?is?installed.");
??????}??
10.9改為當前mac版本號
?