ATX+Python:Android自动化测试
来源:互联网 发布:辣条网络用语 编辑:程序博客网 时间:2024/04/28 17:44
1.测试环境搭建
python[3.5] 安装完成后 ,进行以下操作:
1.1 安装atx
pip install atx
1.2 安装opencv
pip install opencv_python-3.2.0.7-cp35-cp35m-win32.whl
1.3 安装uiautomater
pip install uiautomator
1.4 测试环境是否搭建成功
连接Android手机或者Android模拟器[推荐蓝叠],先用adb devices确保手机/模拟器已连接上,再进行以下操作。
在pycharm中输入以下代码,并点击运行:
import atxprint(atx.connect())
如果输出类似于:<atx.drivers.android.AndroidDevice object at 0x02B14630>,则安装成功,反之,需要查找问题所在并进行修改。
2.常用实例
2.1 连接手机
self.d = atx.connect()#连接手机self.d.screen.on()#唤醒屏幕
2.2 启动/退出APP
self.d.start_app(package_name[,activity])self.d.stop_app(package_name[,clear])#clear 为true时,APP数据将被清空
2.3 基于UI的自动化操作
2.3.1 获取控件
通过uiautomatorviewer(D:\Program Files\Android\android-sdk\tools\uiautomatorviewer.bat)获取ID、class、Text等,获取控件的方法类似于:
self.d(resourceId="com.easemob.businesslink:id/phone_number")self.d(resourceId="com.easemob.businesslink:id/layout", className="android.widget.LinearLayout",index=3)self.d(resourceId="com.easemob.businesslink:id/list").child(className="android.widget.LinearLayout", index="3")self.d(className="android.widget.RelativeLayout").child(text="测试")
2.3.2 常用事件
(1)是否存在
self.d(resourceId="").exists
(2)点击
self.d(resourceId="").click
(3)滑动
self.d().swipe.left()
self.d().swipe.right[up,down]()
(4)滚动
self.d().scroll()
(5)长按
self.d(resourceId="").swipe.right(steps=300)[300相当于长按5秒]
(6)设置文本
self.d(resourceId="").set_text("123456")
[待补充......]
2.4 基于atx的Report
基于atx进行测试时,引入report,可以生产包含网页、gif图片、result.json的报告,具体操作如下:
import timefrom atx.ext import reportclass SendMessage: def __init__(self,d,dir): self.d=d self.rp=report.Report(self.d, save_dir=dir) self.rp.patch_uiautomator() self.rp.info("Start Send Melito_message") self.chars="ABC" def stopSend(self): self.rp.info("Send Camito Message is finished") #***********************************************发送语音************************ #发送语音消息,可定制语音消息的时长steps、发送条数i def sendVoice(self): self.d(resourceId="com.easemob.businesslink:id/btn_set_mode_voice").click() time.sleep(1) if self.d(resourceId="com.easemob.businesslink:id/btn_press_to_speak").exists: self.d(resourceId="com.easemob.businesslink:id/btn_press_to_speak").swipe.right(steps=300)#通过这种方式来实现长按,600相当于10秒 print ("send voice message success")其他类调用该类即可生成Report:
import time,atxfrom SendSomeMessage import SendMessageclass CHAT: def __init__(self): self.d=atx.connect() dir="Report/chat"+str(time.time()).replace(".","") self.sendmessage = SendMessage(self.d,dir) self.chat() def chat(self): self.sendmessage.sendVoice() self.sendmessage.stopSend()if __name__=="__main__": CHAT()
3. 总结
(1)使用ATX对Android进行自动化测试的难度不大,准确性也比较高。
(2)自动化测试的前提是 设计好测试用例 ,重点也是设计测试用例,自动化测试仅作为辅助。使用ATX可以减少繁杂的人工操作、也可以严格控制每一个操作执行的次数和时间,能够提升工作效率。
(3)另外,网上有资料说ATX也可对IOS进行自动化测试,有时间可以试一下。
阅读全文
0 0
- ATX+Python:Android自动化测试
- Python + Android + Uiautomator自动化测试
- Python + Android + Uiautomator自动化测试
- Appium+Python:Android自动化测试
- python自动化测试android项目
- Android进阶--android自动化测试python+uiautomator
- 移动端自动化测试 python appium Android
- Python+Android自动化测试搭建环境
- 使用Python进行Android自动化测试
- appium+Python+Android 自动化测试实例
- Appium+python Android自动化测试环境搭建
- python + appnium 做android自动化测试
- python自动化测试
- python自动化测试
- python + selenium 自动化测试
- python 自动化测试
- selenium + python 自动化测试
- python单元测试(自动化测试)
- WIFI网络判断
- JVM(Java虚拟机)简介_动力节点Java学院整理
- 写Shader的总结与基础知识
- celery系列 一 celery 相关配置
- 饮料如何畅销市场?看农夫山泉如何玩转营销
- ATX+Python:Android自动化测试
- PHP中的常见魔术方法功能作用及用法实例
- Fragment通过OnActivityResult获取Activity返回数据
- c++程序崩溃生成dump文件确定错误位置方法
- 新员工入职流程
- SpringCloud: docker部署spring cloud项目
- 一劳永逸的搞定 flex 布局
- jenkins+maven+git+tomcat实现web项目的自动化部署
- webstorm 2017 2016 各个版本 激活破解大全 实测可用