天天看點

頁面自動化對比html,Web/App端自動化測試對比

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完全隻是控制浏覽器,别的地方和它無關。

原文:https://www.cnblogs.com/guo2733/p/10830392.html