1. 程式人生 > >Web/App端自動化測試對比

Web/App端自動化測試對比

python set 對象 sel input標簽 手機 提示 selenium 多個

1. 啟動差別

app端:在執行用例的時候,1部安卓手機同一時刻打開一個apk包,可以理解,因為比如你在做王者榮耀的測試,那麽你的apk肯定只有1個在主屏幕顯示,其他apk在後臺繼續運行,但是你無法對他們做操作。

web端:web端就不太一樣了,在web端,我們可以通過Python多線程(或多進程)同時開啟幾個瀏覽器,讓selenium對多個瀏覽器進行操作,同樣100個測試用例,如果均勻分布在3個瀏覽器進行,那麽測試效率會有所提高,而且只需要一臺電腦就可以測試多種瀏覽器。

2. 安裝檢查

app端:這點感覺很像c/s架構軟件,因為app是需要安裝了才能使用的,所以軟件是否安裝異常,也是需要檢查的一個點。

web端:不需要安裝,在瀏覽器中輸入url就可以測試。


3. 頁面元素操作

app端:只會顯示在手機頁面裏加載出來的部分,比方說有的頁面比較長,需要向下滑動才能看到更多信息,此時需要保證不可見的元素顯示在手機頁面才能對它進行操作。

web端:不太一樣,如果控件不是下拉產生的異步加載,那麽我們是可以對屏幕內不可見的元素做操作的。因為雖然頁面上沒有加載出來,但是html頁面實際上已經有了。如果遇到需要下拉才能加載的頁面,可以用js操作滾動條。

4. 元素定位

app端:基本操作和web端差不多,不過部分定位方式不支持,比如css_selector和link_text,使用的時候會提示方法還沒實現,也多出了accessible_id這種新的定位方式,不過目前我還沒有用到,以後再補充。

web端:基礎的就name,id,class_name,css,xpath這幾種了。

5. 啟動

app端:需要制定desired_caps內容,因為裏面包含了設備信息等。

web端:通過啟動webdriver不同的瀏覽器類,獲取driver,如webdriver.Chrome(),也可以模擬手機端加載wap頁面做wap頁面的測試。

6. 關於元素的屬性

app端:查找到元素以後,查看元素對象,發現裏邊基本上只有元素的text屬性,也沒有相關的方法修改,這個區別還是很大的。不過appium有set_text和set_value的方法,目前還沒有嘗試,用的還是send_keys()。

web端:web端簡直就是天堂了,比起修改,讀取元素屬性。比如我要獲取input標簽的name,我可以用get_attribute方法,也可以自行寫js代碼改變這些屬性。


7. 使用js

app端:似乎是支持了,但是執行任何命令server端都會提示404的錯誤。

web端:支持非常好,因為本身js就是負責網頁交互的,所以會很方便。

8. 關於滑動

app端:關於滑動是會用得很多的,比如頁面很長,或者打開通知欄,這種需要在屏幕上滑動的,用到的還比較多。

web端:用到的比較少,之前基本上沒有用到過。

9. 異常

app端:需要註意的是其他apk給你帶來的影響,目前沒有找到很好的方式去處理這些問題,因為其他apk給你做了彈窗,比如qq異地登陸,或者短信這種推送,會影響到目前的流程。辦法肯定是有解決的,我個人理解,可以在出錯之後比對一下是否在當前apk,如果不在的話則進入當前apk再做一次相關操作。

web端:很少被影響,可以邊跑用例邊聊qq,當然我只是舉個例子,總之個人體會就是影響比較小,因為瀏覽器的driver完全只是控制瀏覽器,別的地方和它無關。

Web/App端自動化測試對比