详解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读写ini文件的方法
May 28 Python
windows下python安装paramiko模块和pycrypto模块(简单三步)
Jul 06 Python
Windows下的Python 3.6.1的下载与安装图文详解(适合32位和64位)
Feb 21 Python
Python get获取页面cookie代码实例
Sep 12 Python
python 统计一个列表当中的每一个元素出现了多少次的方法
Nov 14 Python
python 读取文件并把矩阵转成numpy的两种方法
Feb 12 Python
Python 等分切分数据及规则命名的实例代码
Aug 16 Python
numpy.linalg.eig() 计算矩阵特征向量方式
Nov 29 Python
python GUI库图形界面开发之PyQt5动态加载QSS样式文件
Feb 25 Python
浅析Python __name__ 是什么
Jul 07 Python
python 如何在 Matplotlib 中绘制垂直线
Apr 02 Python
Python 中random 库的详细使用
Jun 03 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聊天室技术
2006/10/09 PHP
PHP 数组遍历方法大全(foreach,list,each)
2010/06/30 PHP
编写Smarty插件在模板中直接加载数据的详细介绍
2013/06/26 PHP
ThinkPHP防止重复提交表单的方法实例分析
2018/05/10 PHP
Windows服务器中PHP如何安装redis扩展
2019/09/27 PHP
javascript 学习之旅 (2)
2009/02/05 Javascript
真正的JQuery.ajax传递中文参数的解决方法
2011/05/28 Javascript
JQuery的Ajax请求实现局部刷新的简单实例
2014/02/11 Javascript
JS将光标聚焦在文本最后的实现代码
2014/03/28 Javascript
深入探讨JavaScript、JQuery屏蔽网页鼠标右键菜单及禁止选择复制
2014/06/10 Javascript
JS实现进入页面时渐变背景色的方法
2015/02/25 Javascript
jQuery+正则+文本框只能输入数字的实现方法
2016/10/07 Javascript
JS中作用域和变量提升(hoisting)的深入理解
2016/10/31 Javascript
bootstrap日历插件datetimepicker使用方法
2016/12/14 Javascript
AngularJS读取JSON及XML文件的方法示例
2017/05/25 Javascript
Angular17之Angular自定义指令详解
2018/01/21 Javascript
vue实现父子组件之间的通信以及兄弟组件的通信功能示例
2019/01/29 Javascript
layui表格数据复选框回显设置方法
2019/09/13 Javascript
Node如何后台数据库使用增删改查功能
2019/11/21 Javascript
[28:05]完美世界DOTA2联赛循环赛Inki vs DeMonsTer 第一场 10月30日
2020/10/31 DOTA
详解Python3中yield生成器的用法
2015/08/20 Python
详解用pyecharts Geo实现动态数据热力图城市找不到问题解决
2019/06/26 Python
python torch.utils.data.DataLoader使用方法
2020/04/02 Python
Django 设置admin后台表和App(应用)为中文名的操作方法
2020/05/10 Python
html5中valid、invalid、required的定义
2014/02/21 HTML / CSS
澳大利亚现代波西米亚风格女装网站:Bohemian Traders
2018/04/16 全球购物
艺术学院毕业生自我评价
2014/03/02 职场文书
农村改厕实施方案
2014/03/22 职场文书
生物工程专业求职信
2014/09/03 职场文书
报效祖国演讲稿
2014/09/15 职场文书
2014年医药代表工作总结
2014/11/22 职场文书
客户经理岗位职责大全
2015/04/09 职场文书
《蚂蚁和蝈蝈》教学反思
2016/02/22 职场文书
使用canvas实现雪花飘动效果的示例代码
2021/03/30 HTML / CSS
在CSS中映射鼠标位置并实现通过鼠标移动控制页面元素效果(实例代码)
2021/04/22 HTML / CSS
JavaScript 实现页面滚动动画
2021/04/24 Javascript