鼠年全马铁人挑战 WEEK 25:Appium 自动化测试 - 第六集

              Photo on kobiton.com


前言

在 APP 自动化测试的一、二集
分别介绍了 安装 Appium 与 Appium Desktop

安装 Appium安装 Appium Desktop

在三到五集的文章中小弟花了一点时间介绍了 Appium Desktop
使用 Mac 与 Windows 的作业系统 操作了 Android 与 iOS 的真机与模拟器
有兴趣的大哥大姐可以再自行斟酌观看

Mac 作业系统与 Android 真机Windows 作业系统与 Android 模拟器Mac 作业系统与 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

PlatformDriverPlatform VersionsAppium VersionDriver VersioniOSXCUITest9.3+1.6.0+AlliOSUIAutomation8.0 to 9.3AllAllAndroidEspresso?+1.9.0+AllAndroidUiAutomator2?+1.6.0+AllAndroidUiAutomator4.3+AllAllMacMac?+1.6.4+AllWindowsWindows10+1.6.0+All想了解更多可至官网查看更多资讯 Appium 官网 : Status - Appium

opts

上面程式中 opts object 的内容为手机应用程式的相关资讯
在前三週的内容都有介绍过 Android 与 iOS 的配置
如果还没看过的大哥大姐可以参考一下如何使用

Mac 作业系统与 Android 真机Windows 作业系统与 Android 模拟器Mac 作业系统与 iOS 模拟器

function main()

上面程式中 main function 的内容为自动化测试的脚本
小弟是使用 JavaScript WebdriverIO 进行撰写
相关的操作也是透过 Javascript (WebdriverIO) 官方网站查询语法

而 Appium 提供的程式语言相当的多样
除了 JavaScript 外还有其他的程式语言

LanguageSupportDocumentationJavaAlljavadoc.ioPythonAllselenium-python.readthedocs.ioJavascript (WebdriverIO)AllJavascript (WD)Allgithub.comRubyAllwww.rubydoc.infoPHPAllgithub.comC#Allgithub.com想了解更多可至官网查看更多资讯 Appium 官网 : Status - Appium

执行程式

在完成上述所有操作后
我们就可以开启 "APP 自动化测试 - 第二集" 中所介绍的 "安装 appium desktop"
确认该输入的设定值已完成输入 即可点击 Start Server 进入 Log 页面


接着就可以下指令来完成自动化测试
$ node index.js

下面影片的过程中 小弟是没有触碰萤幕的
全程 都是交给 Appium 来进行操作

测试完成后也可以到 Appium Server Log 来查看执行结果


结尾

以上是小弟这週的分享内容
主要是结合前几篇介绍到的东西
来达到透过 Appium 自动化测试的效果

如果有疑问或是有错误,还请各位大哥大姐提点。
小弟将继续往下週迈进。 ─=≡Σ((( つ•̀ω•́)つ

另外如果有想要了解什么的话 也欢迎在下方留言
让小弟知道 我缺了什么或是哪边没有说明清楚


参考文件:

官方网站

Getting Started - AppiumStatus - AppiumAPI Documentation - Appium

相关文章

APP 自动化测试 - 第一集APP 自动化测试 - 第三集

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章