详解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使用pil生成图片验证码的方法
May 08 Python
Python中return语句用法实例分析
Aug 04 Python
python实现井字棋游戏
Mar 30 Python
Python中基础的socket编程实战攻略
Jun 01 Python
利用Python抓取行政区划码的方法
Nov 28 Python
python爬取m3u8连接的视频
Feb 28 Python
20行python代码实现人脸识别
May 05 Python
PyQt5基本控件使用详解:单选按钮、复选框、下拉框
Aug 05 Python
Python序列化与反序列化pickle用法实例
Nov 11 Python
浅析Python 简单工厂模式和工厂方法模式的优缺点
Jul 13 Python
python 如何在测试中使用 Mock
Mar 01 Python
Python爬取英雄联盟MSI直播间弹幕并生成词云图
Jun 01 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桌面中心(四) 数据显示
2007/03/11 PHP
PHP校验ISBN码的函数代码
2011/01/17 PHP
PHP开发中常见的安全问题详解和解决方法(如Sql注入、CSRF、Xss、CC等)
2014/04/21 PHP
自己写的php中文截取函数mb_strlen和mb_substr
2015/02/09 PHP
一个关于javascript匿名函数的问题分析
2012/03/30 Javascript
sencha touch 模仿tabpanel导航栏TabBar的实例代码
2013/10/24 Javascript
HTTP 304错误的详细讲解
2013/11/13 Javascript
使用JS CSS去除IE链接虚线框的三种方法
2013/11/14 Javascript
javascript使用正则表达式检测IP地址
2014/12/03 Javascript
jQuery中width()方法用法实例
2014/12/24 Javascript
jQuery实现行文字链接提示效果的方法
2015/03/10 Javascript
JavaScript操作XML文件之XML读取方法
2015/06/09 Javascript
AngularJS过滤器详解及示例代码
2016/08/16 Javascript
js获取元素的标签名实现方法
2016/10/08 Javascript
浅析jQuery操作select控件的取值和设值
2016/12/07 Javascript
jQuery中hover方法搭配css的hover选择器,实现选中元素突出显示方法
2017/05/08 jQuery
React服务端渲染(总结)
2017/07/01 Javascript
深入浅析Node.js单线程模型
2017/07/10 Javascript
angular内置provider之$compileProvider详解
2017/09/27 Javascript
jQuery+ajax实现批量删除功能完整示例
2019/06/06 jQuery
对layui初始化列表的CheckBox属性详解
2019/09/13 Javascript
ligerUI的ligerDialog关闭刷新的方法
2019/09/27 Javascript
在博客园博文中添加自定义右键菜单的方法详解
2020/02/05 Javascript
Vue-cli3生成的Vue项目加载Mxgraph方法示例
2020/05/31 Javascript
python中xrange用法分析
2015/04/15 Python
如何高效使用Python字典的方法详解
2017/08/31 Python
Python正则表达式知识汇总
2017/09/22 Python
Python实现将Excel转换成xml的方法示例
2018/08/25 Python
Python实现 版本号对比功能的实例代码
2019/04/18 Python
python生成requirements.txt的两种方法
2019/09/18 Python
PyQt5高级界面控件之QTableWidget的具体使用方法
2020/02/23 Python
HTML5本地存储之Web Storage详解
2016/07/04 HTML / CSS
一套Delphi的笔试题二
2013/05/11 面试题
管理失职检讨书范文
2015/05/05 职场文书
致运动员赞词
2015/07/22 职场文书
PHP使用QR Code生成二维码实例
2021/07/07 PHP