详解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多线程结合队列下载百度音乐的方法
Jul 27 Python
用Python抢过年的火车票附源码
Dec 07 Python
Python 专题六 局部变量、全局变量global、导入模块变量
Mar 20 Python
Python原始字符串与Unicode字符串操作符用法实例分析
Jul 22 Python
python 实现矩阵上下/左右翻转,转置的示例
Jan 23 Python
Python3安装Pillow与PIL的方法
Apr 03 Python
django之状态保持-使用redis存储session的例子
Jul 28 Python
详谈tensorflow gfile文件的用法
Feb 05 Python
django迁移文件migrations的实现
Mar 31 Python
numpy库ndarray多维数组的维度变换方法(reshape、resize、swapaxes、flatten)
Apr 28 Python
python读取hdfs并返回dataframe教程
Jun 05 Python
Python编程根据字典列表相同键的值进行合并
Oct 05 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导出MySQL数据到Excel文件(fputcsv)
2011/07/03 PHP
处理单名多值表单的详解
2013/06/08 PHP
浅谈PHP命令执行php文件需要注意的问题
2016/12/16 PHP
PHP中ajax无刷新上传图片与图片下载功能
2017/02/21 PHP
基于php(Thinkphp)+jquery 实现ajax多选反选不选删除数据功能
2017/02/24 PHP
PHP实现更改hosts文件的方法示例
2017/08/08 PHP
不常用但很实用的PHP预定义变量分析
2019/06/25 PHP
jquery 表单下所有元素的隐藏
2009/07/25 Javascript
JavaScript DOM学习第四章 getElementByTagNames
2010/02/19 Javascript
基于Jquery与WebMethod投票功能实现代码
2011/01/19 Javascript
javascript定时变换图片实例代码
2013/03/17 Javascript
javascript对象的使用和属性操作示例详解
2014/03/02 Javascript
基于豆瓣API+Angular开发的web App
2015/01/02 Javascript
ztree获取选中节点时不能进入可视区域出现BUG如何解决
2015/12/03 Javascript
js判断PC端与移动端跳转
2020/12/24 Javascript
vue watch监听对象及对应值的变化详解
2018/02/24 Javascript
浅谈vue首屏加载优化
2018/06/28 Javascript
nuxt中使用路由守卫的方法步骤
2019/01/27 Javascript
解决layer 关闭当前弹窗 关闭遮罩层 input值获取不到的问题
2019/09/25 Javascript
Vue项目开发常见问题和解决方案总结
2020/09/11 Javascript
[01:19:46]EG vs Secret 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.21.mp4
2020/07/19 DOTA
Python查看多台服务器进程的脚本分享
2014/06/11 Python
Python算法输出1-9数组形成的结果为100的所有运算式
2017/11/03 Python
Python3读写Excel文件(使用xlrd,xlsxwriter,openpyxl3种方式读写实例与优劣)
2020/02/13 Python
25个CSS3动画按钮和菜单教程分享
2012/10/03 HTML / CSS
html5 Canvas画图教程(5)—canvas里画曲线之arc方法
2013/01/09 HTML / CSS
浅谈html5 video 移动端填坑记
2018/01/15 HTML / CSS
加拿大票务网站:Ticketmaster加拿大
2017/07/17 全球购物
匈牙利墨盒和碳粉购买网站:CDRmarket
2018/04/14 全球购物
现代绅士日常奢侈品:Todd Snyder
2019/12/13 全球购物
师范教师毕业鉴定
2014/01/13 职场文书
会计专业毕业生自荐书
2014/06/25 职场文书
先进党支部申报材料
2014/12/24 职场文书
培训通知
2015/04/17 职场文书
CSS3通过var()和calc()函数实现动画特效
2021/03/30 HTML / CSS
「月刊Action」2022年5月号封面公开
2022/03/21 日漫