Photo on kobiton.com
前言
在 APP 自动化测试的一、二集
分别介绍了 安装 Appium 与 Appium Desktop
在三到五集的文章中小弟花了一点时间介绍了 Appium Desktop
使用 Mac 与 Windows 的作业系统 操作了 Android 与 iOS 的真机与模拟器
有兴趣的大哥大姐可以再自行斟酌观看
小弟将藉由前几週所介绍过的内容来分享这週的内容
而这週所要分享的内容是撰写程式来自动化执行手机应用程式
执行 Appium Server
启动 Appium
完成 "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
// javascriptconst 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
webdriverio 就跟之前介绍过的 Selenium WebDriver 很像
只是差别在于这次的使用对像是 mobile 不是网页浏览器
接下来要做的事情是在专案中 安装 webdriverio$ npm install webdriverio
而 Appium Server 也有相对应的 driver
opts
上面程式中 opts object 的内容为手机应用程式的相关资讯
在前三週的内容都有介绍过 Android 与 iOS 的配置
如果还没看过的大哥大姐可以参考一下如何使用
function main()
上面程式中 main function 的内容为自动化测试的脚本
小弟是使用 JavaScript WebdriverIO 进行撰写
相关的操作也是透过 Javascript (WebdriverIO) 官方网站查询语法
而 Appium 提供的程式语言相当的多样
除了 JavaScript 外还有其他的程式语言
执行程式
在完成上述所有操作后
我们就可以开启 "APP 自动化测试 - 第二集" 中所介绍的 "安装 appium desktop"
确认该输入的设定值已完成输入 即可点击 Start Server 进入 Log 页面
接着就可以下指令来完成自动化测试$ node index.js
下面影片的过程中 小弟是没有触碰萤幕的
全程 都是交给 Appium 来进行操作
测试完成后也可以到 Appium Server Log 来查看执行结果
结尾
以上是小弟这週的分享内容
主要是结合前几篇介绍到的东西
来达到透过 Appium 自动化测试的效果
如果有疑问或是有错误,还请各位大哥大姐提点。
小弟将继续往下週迈进。 ─=≡Σ((( つ•̀ω•́)つ
另外如果有想要了解什么的话 也欢迎在下方留言
让小弟知道 我缺了什么或是哪边没有说明清楚
参考文件:
官方网站
Getting Started - AppiumStatus - AppiumAPI Documentation - Appium相关文章
APP 自动化测试 - 第一集APP 自动化测试 - 第三集