Photo on kobiton.com
在 APP 自動化測試的一、二集
分別介紹了 安裝 Appium 與 Appium Desktop
在三到五集的文章中小弟花了一點時間介紹了 Appium Desktop
使用 Mac 與 Windows 的作業系統 操作了 Android 與 iOS 的真機與模擬器
有興趣的大哥大姐可以再自行斟酌觀看
小弟將藉由前幾週所介紹過的內容來分享這週的內容
而這週所要分享的內容是撰寫程式來自動化執行手機應用程式
完成 "APP 自動化測試 - 第一集" 中所介紹的 "安裝 appium"
如果大哥大姐還沒過第一篇的話 也沒關係
為了方便 小弟就直接在這邊列出從無到有的執行方式
如果想要看更多的步驟說明可以再自行觀看
文章連結 : APP 自動化測試 - 第一集
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" # 安裝 homebrew
$ brew install node # 安裝 node
$ mkdir appium_demo && cd appium_demo # 新增專案資料夾
$ npm init -y # 初始文件
$ npm install appium # 安裝 appium
在 package.json
文件中的 script 加上 "appium": "appium"
接著執行 $ npm run appium
此時 Appium 將顯示以下消息確認已經成功啟動
[Appium] Welcome to Appium v1.18.0
[Appium] Appium REST http interface listener started on 0.0.0.0:4723
預設的 port 為 4723 如果想要更改 port
可以使用 -p 進行更改 例如 appium -p 5000
如果想要結束可以透過 control
+C
來關閉 Appium Server
新增一份 index.js
的檔案在 appium_demo 專案底下
並撰寫測試腳本 (以下腳本僅供參考)
小弟使用的是 Android 真機的內建計算機
測試腳本的內容為 點擊 1+1= 並驗證計算結果應該為 2
// javascript
const wdio = require("webdriverio");
const assert = require("assert");
const opts = {
path: '/wd/hub',
port: 4723,
capabilities: {
platformName: "Android",
platformVersion: "10",
deviceName: "R58N12607JM",
appPackage: "com.sec.android.app.popupcalculator",
appActivity: "com.sec.android.app.popupcalculator.Calculator",
automationName: "UiAutomator2"
}
};
async function main() {
const client = await wdio.remote(opts);
const one = await client.$('//android.widget.Button[@content-desc="1"]');
const plus = await client.$('//android.widget.Button[@content-desc="加號"]');
const result = await client.$('android.widget.TextView')
await one.click();
await plus.click();
await one.click();
const value = await result.getText();
assert.equal(value, '2');
await client.deleteSession();
}
main();
webdriverio 就跟之前介紹過的 Selenium WebDriver 很像
只是差別在於這次的使用對像是 mobile 不是網頁瀏覽器
接下來要做的事情是在專案中 安裝 webdriverio$ npm install webdriverio
而 Appium Server 也有相對應的 driver
Platform | Driver | Platform Versions | Appium Version | Driver Version |
---|---|---|---|---|
iOS | XCUITest | 9.3+ | 1.6.0+ | All |
iOS | UIAutomation | 8.0 to 9.3 | All | All |
Android | Espresso | ?+ | 1.9.0+ | All |
Android | UiAutomator2 | ?+ | 1.6.0+ | All |
Android | UiAutomator | 4.3+ | All | All |
Mac | Mac | ?+ | 1.6.4+ | All |
Windows | Windows | 10+ | 1.6.0+ | All |
想了解更多可至官網查看更多資訊 Appium 官網 : Status - Appium |
上面程式中 opts object 的內容為手機應用程式的相關資訊
在前三週的內容都有介紹過 Android 與 iOS 的配置
如果還沒看過的大哥大姐可以參考一下如何使用
上面程式中 main function 的內容為自動化測試的腳本
小弟是使用 JavaScript WebdriverIO 進行撰寫
相關的操作也是透過 Javascript (WebdriverIO) 官方網站查詢語法
而 Appium 提供的程式語言相當的多樣
除了 JavaScript 外還有其他的程式語言
Language | Support | Documentation |
---|---|---|
Java | All | javadoc.io |
Python | All | selenium-python.readthedocs.io |
Javascript (WebdriverIO) | All | |
Javascript (WD) | All | github.com |
Ruby | All | www.rubydoc.info |
PHP | All | github.com |
C# | All | github.com |
想了解更多可至官網查看更多資訊 Appium 官網 : Status - Appium |
在完成上述所有操作後
我們就可以開啟 "APP 自動化測試 - 第二集" 中所介紹的 "安裝 appium desktop"
確認該輸入的設定值已完成輸入 即可點擊 Start Server 進入 Log 頁面
接著就可以下指令來完成自動化測試$ node index.js
下面影片的過程中 小弟是沒有觸碰螢幕的
全程 都是交給 Appium 來進行操作
測試完成後也可以到 Appium Server Log 來查看執行結果
以上是小弟這週的分享內容
主要是結合前幾篇介紹到的東西
來達到透過 Appium 自動化測試的效果
如果有疑問或是有錯誤,還請各位大哥大姐提點。
小弟將繼續往下週邁進。 ─=≡Σ((( つ•̀ω•́)つ
另外如果有想要了解什麼的話 也歡迎在下方留言
讓小弟知道 我缺了什麼或是哪邊沒有說明清楚
官方網站
相關文章