详解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代码检查工具pylint 让你的python更规范
Sep 05 Python
利用python获取当前日期前后N天或N月日期的方法示例
Jul 30 Python
python实现跨excel的工作表sheet之间的复制方法
May 03 Python
Python实现的当前时间多加一天、一小时、一分钟操作示例
May 21 Python
使用python存储网页上的图片实例
May 22 Python
numpy.linspace 生成等差数组的方法
Jul 02 Python
python网络应用开发知识点浅析
May 28 Python
Python 获取项目根路径的代码
Sep 27 Python
新年福利来一波之Python轻松集齐五福(demo)
Jan 20 Python
python实现logistic分类算法代码
Feb 28 Python
python plt可视化——打印特殊符号和制作图例代码
Apr 17 Python
python可以用哪些数据库
Jun 22 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获取文件夹内文件数的方法
2015/03/12 PHP
discuz图片顺序混乱解决方案
2015/07/29 PHP
php微信公众号开发之简答题
2018/10/20 PHP
workerman结合laravel开发在线聊天应用的示例代码
2018/10/30 PHP
IE FF OPERA都可用的弹出层实现代码
2009/09/29 Javascript
Firebug 字幕文件JSON地址获取代码
2009/10/28 Javascript
jQuery select操作控制方法小结
2010/05/26 Javascript
javascript和jquery修改a标签的href属性
2013/12/16 Javascript
javascript实现仿IE顶部的可关闭警告条
2015/05/05 Javascript
JQuery实现图片轮播效果
2015/09/15 Javascript
基于JavaScript创建动态Dom
2015/12/08 Javascript
JavaScript类型系统之布尔Boolean类型详解
2016/06/26 Javascript
AngularJS实践之使用ng-repeat中$index的注意点
2016/12/22 Javascript
原生JavaScript实现Tooltip浮动提示框特效
2017/03/07 Javascript
Bootstrap实现基于carousel.js框架的轮播图效果
2017/05/02 Javascript
Webpack打包css后z-index被重新计算的解决方法
2017/06/18 Javascript
js实现HTML中Select二级联动的实例
2018/01/05 Javascript
js中Object.defineProperty()方法的不详解
2018/07/09 Javascript
小白教程|一小时上手最流行的前端框架vue(推荐)
2019/04/10 Javascript
原生javascript单例模式的应用实例分析
2020/02/23 Javascript
微信小程序基于高德地图API实现天气组件(动态效果)
2020/10/22 Javascript
重命名批处理python脚本
2013/04/05 Python
在python的WEB框架Flask中使用多个配置文件的解决方法
2014/04/18 Python
教你如何在Django 1.6中正确使用 Signal
2014/06/22 Python
Linux下编译安装MySQL-Python教程
2015/02/02 Python
python 转换 Javascript %u 字符串为python unicode的代码
2016/09/06 Python
python 函数的缺省参数使用注意事项分析
2019/09/17 Python
django为Form生成的label标签添加class方式
2020/05/20 Python
Python数据可视化图实现过程详解
2020/06/12 Python
详解通过focusout事件解决IOS键盘收起时界面不归位的问题
2019/07/18 HTML / CSS
娱乐地球:Entertainment Earth
2020/01/08 全球购物
幼儿园保教管理制度
2014/02/03 职场文书
捐书活动总结
2014/05/04 职场文书
煤矿安全生产标语
2014/06/06 职场文书
滞留工资返还协议书
2014/10/19 职场文书
mysql死锁和分库分表问题详解
2021/04/16 MySQL