admin管理员组

文章数量:1531226

2024年5月17日发(作者:)

Appium自动化应用

发布时间:2021-11-30T06:25:28.726Z 来源:《科学与技术》2021年8月24期 作者: 王丽娟

[导读] 工作中经常会接到运营部门的一些批处理需求,怎样利用程序替代人工完成枯燥费时的任务变得非常有意义。

王丽娟

(世纪畅链有限责任公司 200082)

摘要:工作中经常会接到运营部门的一些批处理需求,怎样利用程序替代人工完成枯燥费时的任务变得非常有意义。Appium是一个开

源工具,用于在iOS、Android移动设备及Windows桌面平台上实现native apps、mobile web apps和hybrid apps的自动化,本文将介绍Appium

的工作原理,及利用Appium在Android真机下完成微信联系人批量添加的整个流程,为实现一款供非开发人员使用的工具提供一种思路。

关键词:Appium,Android,自动化

一、Appium的工作原理

Appuim基于C/S架构。

Appium Client可以理解为承载测试用例的载体,Appium Client Libraries为整个客户端的核心,为测试用例提供标准化的API,该库可以

提供多种语言(Java、Python、JavaScript、PHP、Ruby、C#),进而测试代码也可以用以上任意语言开发,灵活性极强。

Appium Server具有多平台的特性,在mac、windows、linux都可以安装Appium Server。

整个的自动化流程为:Appium Client端基于WebDriver Protocol协议,把测试用例以Json Object格式的命令发送一个post请求给Appium

Server, Appium Server再把这个命令发送给UiAutomator2 driver,通过Google的UiAutomator2技术实现在移动设备上的自动化操作。原理图如图

1:

图1

二、Appium的优点

1、测试用例可以用多种语言实现,包含Java、Python、JavaScript、PHP、Ruby、C#。

2、Appium Server支持多平台。

3、支持Web App、Native App和Hybrid App应用测试。

三、利用Appium完成微信联系人的批量添加

1、完整流程

该实现过程不仅包含利用Appium完成联系人的批量添加功能,还包含搭建可视化图形界面供非开发人员使用,目的是输出非开发人员

使用的便捷工具。

时序图如图2:

图2

此系统包括三部分:

服务系统:该系统为了方便用户操作使用了图形化界面,原始数据和用户隔离,用户一键操作即可完成联系人添加。提供联系人系统

把可以是任何形式的联系人数据来源输出成标准格式的数据供图形化界面展示,以便用户批量选择要添加的联系人。此联系人列表还可以

进行扩展,如给联系人添加是否首次添加的tag,可以让用户做出此联系人是否重新添加的决策。通知系统便是一个定时通知系统,先从联

系人系统查询是否有待添加联系人,定时通知用户去用户界面操作完成添加,间隔多长时间、联系人累计多少条再通知用户,这些都可以

根据实际需求设置。

Appium系统:包含Appium Client和Appium Server。Appium Client本项目中用的是java-client,Appium Server可以部署在不同的服务器

上。具体工作原理如上所述,此处不赘述。

移动设备:自动化目标app,可以是安装在Android设备的app,也可以是ios设备上的app等,此项目目标是安装在Android设备的微信

app。不同设备在Appium Client和Appium Server的操作上有所不同,具体参见Appium开源官网。

2、Appium Client核心代码

使用UiAutomator2 driver启动会话的请求参数,API由java-client库提供。参数appPackage、appActivity决定了要打开的页面,

platformName决定了自动化应用是哪个移动平台,包含iOS,Android,FirefoxOS取值。

图3为发送命令的关键参数,这些参数指示了自动化所做的操作。核心是识别目标页面要操作的控件,进行点击或输入文本。控件的识

别可以有两种方式,一种是根据控件id,一种是根据控件文本,分别对应(“”)、“new UiSelector().text(“”)”。控件的id和文本可以利用

Android sdk提供的工具查找。

图3

作者简介:王丽娟,女,1984年10月22日,汉,山西,本科,安卓软件开发研究员,研究方向:移动端开发和自动化测试

本文标签: 联系人添加完成操作用户