Automation tests 4 — run


那要怎麼跑起來咧?




run on android



在 Android 上做 automation,總是讓我覺得微風徐徐啊,因為真的不難,資料也不算少。

所有的資料都在這裡

基本上,你會需要先做出另外一個 keystore,讓 calabash-android 用這個 keystore 把 apk 簽章後,丟到手機或模擬器上,就可以跑了。

詳細步驟

  1. 重新簽章 calabash-android resign XXX.apk

  2. calabash-android console XXX.apk 會開一個 ruby 的 console,在這裡面,你需要先打一個指令:reinstall_apps

  3. 在 console 裡面,也可以打入 start_test_server_in_background

    然後 query(“*”)


就是查詢所有在螢幕可視範圍內的 view 的物件的 id、位置等等,然後你可以使用 touch(“* id:’xxxx’”) 來按壓這個 id。把這些東西用 ruby 串一些 logic 不就是一個很簡單的 automation 的 test case 了?

要執行時,calabash-android run XXX.apk 就跑起來了,不管你用實機或是模擬器,都可以順利執行。



run on iOS


在 iOS 上執行,基本上跟 android 非常類似,但目前我只知道怎麼 run 在 emulator 上。

詳細步驟:

  1. calabash-ios console XXX.app 會開一個 ruby 的 console,打入 start_test_server_in_background


然後

query(“*”)

就是查詢所有的 view 的物件的 id、位置等等,然後你可以使用 touch(“* id:’xxxx’”) 來按壓這個 id。

要執行時,打入 cucumber 就可以了。


run on web


最簡單,在 console 內打入 cucumber 即可。

或許你會想指定 browser 是哪個,ex: firefox、chrome 等等,那就

cucumber BROWSER=chrome

即可

web_auto/feature/env.rb 裡面,你可以看到更多的其他的參數。



run on mobile web


這需要搭配 appium,這邊以 Android 為例:


只要選好對應的 Android Version,把手機插上 usb,然後按下右上角的 launch,等一下以後

,你會看到這個畫面:



然後用 console ,打入

cucumber PLATFORM=android BROWSER=chrome

他就會跑起來了~


然後 Appium 視窗會噴一大堆訊息~
然後你應該就會看到 mWeb 的自動測試開始執行了。

當然,你也可以用桌機的 chrome 去跑 mobile 版的 web,一樣是可以的。






留言