详解appium自动化测试工具(monitor、uiautomatorviewer)


Posted in Python onJanuary 27, 2021

appium 是一个自动化测试开源工具,支持iOS和 Android平台上的原生应用,web应用和混合应用。

  • 移动原生应用:单纯用ios或者android开发语言编写的、针对具体某类移动设备、可直接被安装到设备里的应用,一般可通过应用商店获取,比如某个游戏app;
  • 移动web应用:使用移动浏览器访问的应用(appium支持iOS上的Safari和Android上的Chrome),不需要下载到设备上,而是通过浏览器直接访问,比如H5九曲封神游戏;
  • 混合应用:同时使用网页语言与程序语言开发,通过应用商店区分移动操作系统分发,用户需要安装使用的移动应用,比如手机上的淘宝客户端

获取应用信息:

from appium import webdriver
desired_caps ={}
desired_caps['platformName']='Android'# 哪种移动平台
desired_caps['platformVersion']='4.2' #设备版本号
desired_caps['deviceName']='Android Emulator' #设备是模拟机
desired_caps['appPackage']='com.android.calculator2' #待测试的app的java package
desired_caps['appActivity']='.Calculator' #待测试的app的activity名字
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) #

讨论:webdriver.Remote实际上就是原生webdriver的子类,另外Remote()构造函数的第一个参数中需要显示指定appium server监听的端口

1、monitor.bat(获取app的package&activity)

该文件位于your_andriod_sdk_path\tools下面。

该工具可以帮我们找到android控件的content-description,为以后的find_element_by_accessibility_id 定位方法做参数使用。

详解appium自动化测试工具(monitor、uiautomatorviewer)

2、uiautomatorviewer.bat(获取app的package和控件属性)

该文件位于your_andriod_sdk_path\tools下面。

该工具主要用来查看控件的属性,比如resource id,class name等。

该工具也可查看被测app的appPackage(Desired Capabilities中使用)。

详解appium自动化测试工具(monitor、uiautomatorviewer)

3、获取activity名字

1、直接看源码,推荐;

2、反编译

如果没有代码,那么可以反编译该app。

这里将用到2个工具,分别是dex2jar和jd-gui。

以工具包里的ContactManager.apk为例,简单介绍一下反编译的流程。

1,重命名ContactManager.apk为ContactManager.zip并解压得到文件classes.dex;

2,解压dex2jar-0.0.9.15.zip,并从命令行进入该文件夹;C:\appium\apk反编译\dex2jar-0.0.9.15

3,运行命令d2j-dex2jar.bat  C:\appium\apk反编译\com.meijialove.activity-1\classes.dex,在当前文件夹下得到classes-dex2jar.jar;

4,解压jd-gui-0.3.6.windows.zip得到文件jd-gui.exe;

5,使用jd-gui.exe打开classes-dex2jar.jar;

详解appium自动化测试工具(monitor、uiautomatorviewer)

3、查看log,发现在Android Devices Monitor的log可以看到activity的名字

详解appium自动化测试工具(monitor、uiautomatorviewer)    

到此这篇关于详解appium自动化测试工具(monitor、uiautomatorviewer)的文章就介绍到这了,更多相关appium自动化测试工具内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
剖析Python的Tornado框架中session支持的实现代码
Aug 21 Python
为Python的Tornado框架配置使用Jinja2模板引擎的方法
Jun 30 Python
解决Spyder中图片显示太小的问题
Apr 27 Python
Python3.6.2调用ffmpeg的方法
Jan 10 Python
java中的控制结构(if,循环)详解
Jun 26 Python
我们为什么要减少Python中循环的使用
Jul 10 Python
Python 中的 global 标识对变量作用域的影响
Aug 12 Python
对Pytorch神经网络初始化kaiming分布详解
Aug 18 Python
Python二元赋值实用技巧解析
Oct 25 Python
python多线程使用方法实例详解
Dec 30 Python
Jupyter Notebook内使用argparse报错的解决方案
Jun 03 Python
Python可视化神器pyecharts绘制水球图
Jul 07 Python
Python利用socket模块开发简单的端口扫描工具的实现
Jan 27 #Python
Python爬虫实现selenium处理iframe作用域问题
Jan 27 #Python
python利用appium实现手机APP自动化的示例
Jan 26 #Python
python 基于opencv去除图片阴影
Jan 26 #Python
python中用ggplot绘制画图实例讲解
Jan 26 #Python
python中altair可视化库实例用法
Jan 26 #Python
用Python制作音乐海报
Jan 26 #Python
You might like
PHP编程中字符串处理的5个技巧小结
2007/11/13 PHP
PHP-redis中文文档介绍
2013/02/07 PHP
Mysql中分页查询的两个解决方法比较
2013/05/02 PHP
浅析关于PHP位运算的简单权限设计
2013/06/30 PHP
跟我学Laravel之请求与输入
2014/10/15 PHP
php用户注册时常用的检验函数实例总结
2014/12/22 PHP
PHP+Session防止表单重复提交的解决方法
2018/04/09 PHP
PHP实现一维数组与二维数组去重功能示例
2018/05/24 PHP
php5对象复制、clone、浅复制与深复制实例详解
2019/08/14 PHP
utf8的编码算法 转载
2006/12/27 Javascript
js实现的奥运倒计时时钟效果代码
2015/12/09 Javascript
JS简单实现String转Date的方法
2016/03/02 Javascript
浅谈在js传递参数中含加号(+)的处理方式
2016/10/11 Javascript
jQuery实现动态添加tr到table的方法
2016/12/26 Javascript
Angularjs cookie 操作实例详解
2017/09/27 Javascript
浅谈angular4.0中路由传递参数、获取参数最nice的写法
2018/03/12 Javascript
Vue.js 中 axios 跨域访问错误问题及解决方法
2018/11/21 Javascript
Flutter部件内部状态管理小结之实现Vue的v-model功能
2019/06/11 Javascript
[49:08]Secret vs VP 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
[47:45]DOTA2-DPC中国联赛 正赛 Phoenix vs Dragon BO3 第一场 2月26日
2021/03/11 DOTA
Python素数检测实例分析
2015/06/15 Python
Python tkinter模块中类继承的三种方式分析
2017/08/08 Python
用matplotlib画等高线图详解
2017/12/14 Python
python采集微信公众号文章
2018/12/20 Python
Python3.5 + sklearn利用SVM自动识别字母验证码方法示例
2019/05/10 Python
Python大数据之使用lxml库解析html网页文件示例
2019/11/16 Python
如何把外网python虚拟环境迁移到内网
2020/05/18 Python
PyTorch如何搭建一个简单的网络
2020/08/24 Python
用html5实现语音搜索框的方法
2014/03/18 HTML / CSS
高中生学习的自我评价
2013/12/14 职场文书
原材料检验岗位职责
2014/03/15 职场文书
老人祝寿主持词
2014/03/28 职场文书
原料仓仓管员岗位职责
2014/07/08 职场文书
2015年司机年终工作总结
2015/05/14 职场文书
运动员入场词
2015/07/18 职场文书
选调生挂职锻炼工作总结
2015/10/23 职场文书