Appuim脚本编写

手动编写Appuim测试脚本

操作步骤

1.设备准备

PC(Mac、windows、linux均可)

一台Android手机(推荐4.4以上的真机)

2.环境依赖(假设用python作为编写语言)

Android sdk

python 2.7

appium server 1.6.1

appium python client

3.appium工作机制

以python语言为例,假设脚本(main.py)中只有“点击按钮btn1”这一个动作,对应的语句为:find_element_by_id(“btn1”).click()。

那么appium的工作流程如下:

1) 启动appium server,它会自动完成如下两件事:

a) 启动一个用于接受appium client请求的http服务

b) 在手机上启动一个socket server,在pc上启动一个socket client;client可以向server发起各种命令

2) 执行main.py,把main.py交给appium python client解析执行

3) python client把动作包装成http请求,发送给appium http server

4) http server把“点击按钮1”请求解析成socket client和server之间规定的通信格式,并通过socket发送请求到手机

5) 运行在手机上的socket server,负责把“点击按钮1”请求解析为具体的手机本地api,并调用手机本地服务执行

6) 执行结果沿着上述通信路线层层返回

其他语言的工作流程也基本一致,区别只在于appium client这里,各个语言的api略有区别。

由此可以看出,appium server最大的好处是,在具体的命令执行上封装了一层统一的基于http协议构建的请求格式,不同语言的客户端可以无差别地调用。

4.本地环境安装

以windows环境为例

1) 安装appium server(包含了各个语言的客户端)。

下载地址:https://bitbucket.org/appium/appium.app/downloads/

选择AppiumForWindows_xxx.zip

解压到任意目录之后,双击appium-installer.exe安装。

安装好之后,打开应用就会出现如下界面:

2) 安装python执行环境

http://www.python.org/downloads/release/python-2711/ 下载跟系统对应的版本,安装即可。

5.本地脚本执行

1) 连上一台手机,打开命令行工具,首先确认能通过adb连上,例如:

2) 打开Appium程序,配置手机信息,配置Appium server信息并启动

a) 配置连上的手机信息

b) 配置Appium server信息,主要是地址和端口,一般使用默认的即可。

3) 启动Appium server

看到如下信息(Appium Rest http interface listener started on [127.0.0.1:4732])就说明启动成功了:

4) 启动好Appium server之后,就可以开始编写脚本了

写法可以参考我们的样例:(下载地址:http://mtcapp.bj.bcebos.com/example_cases.zip

zip包中有如下几个文件:

a) 修改test_config.py中的配置

i. 把${platformVersion}替换为你的安卓设备的系统版本,例如5.1、4.4、4.3;

注意,只能写Appium能识别的platformVersion

ii. 把${deviceName}替换为对应设备的序列号,例如在我们的例子中是3a1a658。(即adb devices显示的序列号,参考5-(2)-(a))

iii. 把${app}替换为被测应用的绝对路径,例如“D:\test_appium\test.apk”

iv. 把${port}替换为Appium server的端口(参考5-(2)-(a)),默认是4723

b) 修改main.py的内容

在我们的例子中,只是简单的做了两次向左划屏的动作,这里可以自定义测试用例的内容,需要具备一定的appium driver api的基础, 并且需要自己多去查阅一些资料了。建议根据参考资料里的《Appium python driver api入门》去做进一步查阅。(可以先参考上图中注释掉的代码,类名、函数名可以修改,需要注意,appium从1.5版本开始,去掉了find_element_by_name等方法)

5) 脚本修改好了之后,在main.py的同级目录下打开命令行,执行“python –m unittest main”,

可以看到Appium的控制台打印出了很多信息,并且手机同时开始执行脚本:

执行完了之后,会在命令行弹出测试结果:

如果出现了OK的字样,说明测试通过了!

6.提交到百度智能云

把main.py和test_config.py打包成zip包(理论上只需要main.py即可,test_config.py会自动配置)

https://console.bce.baidu.com/aat/startTest/replay 提交功能回放测试:

除了提交被测app以外,再把刚刚打好的用例zip包上传,点击立即购买,就会在bce机房上选出10款优质机型进行回放测试。

7.效果样例
1) 概览

2) 终端详情

3) 性能结果

8.参考资料

官网:http://appium.io/

Appium安装包下载地址:https://bitbucket.org/appium/appium.app/downloads/

Appium python driver api入门:http://blog.csdn.net/hqzxsc2006/article/details/50112109

注:

目前百度智能云采用的Appium版本是 1.6.1(会随着时间推移逐渐更新),不同版本的Appium支持的api会略有区别,需要尤其注意。