慕测 移动应用测试——实用技巧函数总结
小白第一次參加慕測的移動端測試,一開始讓各種環境配置給搞暈了,差點放棄,關于環境安裝我想等下回在寫篇文章,給那些想參加又無從下手的人些幫助。這次文章就先講講幾個做題的技巧,畢竟明天就初測了,說不定有的人還能用上 [嘻嘻~]
 
 這篇文章主要講一下幾個實用的代碼:
目錄
- 1. 延時
- 2. ID定位
- 3.通過class的內部定位(text法 和 index法)
- ①? text法
- ②? index法
 
- 4. 通過class的位置定位(坐標) [ 推薦!]
- 5. 返回上一頁 [ 推薦!]
- 6.輸入文本信息 [ 推薦!]
 
——————————————————————————
 
1. 延時
//此方法用于防止頁面未加載完的情況導致的bugThread.sleep( X );其中 X 為延時的時間,單位為毫秒(ms)
? 當你測試的時候通常會看著模擬器界面對吧(我用的是電腦模擬器,當然有的人用的是真機,這是個好習慣),加入有一步,你寫的代碼沒成功運行,而且卡住的位置頁面還在加載,那就試試加個延時函數吧,設個一秒兩秒的說不定就成功了。
 ? 親測是可以碰碰運氣的,畢竟有的時候確實就是因為頁面沒有加載完,所以導致下一步點擊未執行。哪怕你看著你想點擊的位置是一開始就加載出來的,在做練習題的時候我就遇到過這樣的問題,明明我想點的位置一開始就加載出來了,只是其他部分還在加載,這個時候加個延時函數就通過了
 ? 而且合理的運用延時函數可以讓你的測試過程看起來舒服很多,讓你在檢查測試的時候能看出來進行到哪一步了,不然有時候畫面一閃就測試過去了你甚至都不知道這進行到哪一步了。。。
 
 
2. ID定位
//此方法通過目標的ID來獲取標簽,并點擊driver.findElementById("X").click();其中 X 為目標標簽的ID(別忘了在 X 外面加上雙引號,因為它是字符串~),
PS:往后的代碼我都會寫一行完整的方便新手上手,可能一行有幾部分組成,請仔細閱讀前面的注釋和后面的解釋,望小白不要誤會
例如:
driver.findElementById("com.luojilab.player:id/btn_agree").click();這行代碼就是獲取ID為“ com.luojilab.player:id/btn_agree ” 的標簽并點擊。
? 這個方法不太推薦使用,當頁面簡單標簽少的時候還算好使,但當后面頁面復雜起來后,你會發現有很多ID相同的標簽,這個時候這個代碼會bug,這里寫出了只是因為一開始小白上手需要個過程,可以先用這個用一用試試。
3.通過class的內部定位(text法 和 index法)
①? text法
//此方法通過目標的 class和 text來進行雙重定位,并點擊driver.findElementByXPath("// class [@text='name']").click();其中class處寫標簽的class名(別忘了前面的 “ // ”),name處寫標簽的text名(單雙引號別弄混了)
例如:
driver.findElementByXPath("//android.widget.TextView[@text='開始']").click();這行代碼就是獲取class為 “ android.widget.TextView ” 且text為 “ 開始 ” 的標簽并點擊。
②? index法
//此方法通過目標的 class和 index來進行雙重定位,并點擊driver.findElementByXPath("// class [@index=num]").click();其中class處寫標簽的class名(別忘了前面的 “ // ”),name處寫標簽的index名
例如:
driver.findElementByXPath("//android.widget.TextView[@index=1]").click();這行代碼就是獲取class為 “ android.widget.TextView ” 且index為 “ 1” 的標簽并點擊。
? 其中index方法不推薦使用,因為我在練習的時候有遇到過bug,而且沒解決,可能是重名?(思考ing)盡量使用第一種方法吧,畢竟一個頁面同class又同text 基本是不太可能,推薦使用
4. 通過class的位置定位(坐標) [ 推薦!]
//此方法通過目標的 class和 坐標bounds來進行雙重定位,并點擊driver.findElementByXPath("// class [@bounds='[x1,x2][y1,y2]']").click();其中class處寫標簽的class名(別忘了前面的 “ // ”),后面bounds后內容填對應標簽的bounds坐標(別忘了外面要加單引號!)
例如:
driver.findElementByXPath("//android.widget.RelativeLayout[@bounds='[144,472][288,569]'] ").click();這行代碼就是獲取class為 “ android.widget.RelativeLayout ” 且bounds為 “ [144,472][288,569] ” 的標簽并點擊。
? 真的真的推薦這個測試方法,只要寫對了基本不會有bug(不像上面那幾個,都會有對應的限制)。這個用法只有一個需要注意的地方,就是bounds不是固定值,它會隨著你的頁面變化而變化(比如手機上下滑動,bounds就會變化)這是個坑,不要認為定位嘛坐標嘛,就一定是固定的(我就踩過這個大坑被坑慘,寫了二十幾行全都得改 QAQ)。所以用這個方法時,一定要保證測試過程中手機頁面跟你編寫代碼時的頁面進行步驟和位置相同,除此外這應該是最萬用的方法了(棒!)
5. 返回上一頁 [ 推薦!]
//此方法用于返回上一個頁面driver.sendKeyEvent(AndroidKeyCode.BACK);此函數用法是固定的, 很好用!很好用!很好用!x3
? 此方法類似于手機的返回按鈕,你就想像自己在用手機,當有返回上一頁的測試過程時是不是就想點手機的返回鍵(斜眼笑),此時就用這個方法吧,這個方法我是沒遇到bug,雖然不代表沒有,但起碼好使是真的
6.輸入文本信息 [ 推薦!]
//此方法用于在定位的地方輸入文本信息.Sendkeys("content");此函數寫在定位之后,負責輸入文本信息,content 處就寫要輸入的文本信息(注意雙引號“ ”,因為是字符串)
例如:
driver.findElementById("com.luojilab.player:id/btn_agree").Sendkeys("移動應用");這行代碼就是獲取ID為“ com.luojilab.player:id/btn_agree ” 的標簽位置并輸入“移動應用”。
? 這個函數用法是必須要會的,輸入文本信息是很重要的一個測試,雙引號不要忘就好。
 
 最后,感謝認真閱讀完的你,如果有任何錯誤歡迎指出,我愿意傾聽任何建議,交流會讓我們共同進步,謝謝!
總結
以上是生活随笔為你收集整理的慕测 移动应用测试——实用技巧函数总结的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 2021-06-10 免费crm软件如何
- 下一篇: virsh 网络设置_KVM-virsh
