详解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程序中操作文件之flush()方法的使用教程
May 24 Python
理解生产者消费者模型及在Python编程中的运用实例
Jun 26 Python
Python处理Excel文件实例代码
Jun 20 Python
对pandas中apply函数的用法详解
Apr 10 Python
python3个性签名设计实现代码
Jun 19 Python
python Pexpect 实现输密码 scp 拷贝的方法
Jan 03 Python
Python解决pip install时出现的Could not fetch URL问题
Aug 01 Python
Django多数据库的实现过程详解
Aug 01 Python
python3的UnicodeDecodeError解决方法
Dec 20 Python
python如何实现复制目录到指定目录
Feb 13 Python
基于python 等频分箱qcut问题的解决
Mar 03 Python
神经网络训练采用gpu设置的方式
Mar 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-FPM进程池探秘
2017/10/17 PHP
flash javascript之间的通讯方法小结
2008/12/20 Javascript
jquery的ajaxSubmit()异步上传图片并保存表单数据演示代码
2013/06/04 Javascript
angularJS 中$scope方法使用指南
2015/02/09 Javascript
jquery实现鼠标滑过小图查看大图的方法
2015/07/20 Javascript
基于JavaScript实现移动端TAB触屏切换效果
2015/10/20 Javascript
微信开发 js实现tabs选项卡效果
2016/10/28 Javascript
js使用i18n实现页面国际化的方法
2017/05/09 Javascript
php简单数据库操作类的封装
2017/06/08 Javascript
js浏览器滚动条卷去的高度scrolltop(实例讲解)
2017/07/07 Javascript
Vue学习笔记进阶篇之vue-router安装及使用方法
2017/07/19 Javascript
JS实现的小火箭发射动画效果示例
2018/12/08 Javascript
如何为你的JS项目添加智能提示与类型检查详解
2019/03/12 Javascript
微信小程序基于canvas渐变实现的彩虹效果示例
2019/05/03 Javascript
Javascript作用域和作用域链原理解析
2020/03/03 Javascript
jQuery实现容器间的元素拖拽功能
2020/12/01 jQuery
[49:08]OpTic vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
[55:44]OG vs NAVI 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
python 运算符 供重载参考
2009/06/11 Python
python正则匹配抓取豆瓣电影链接和评论代码分享
2013/12/27 Python
Python SQLite3数据库操作类分享
2014/06/10 Python
python实现的登录和操作开心网脚本分享
2014/07/09 Python
python之wxPython应用实例
2014/09/28 Python
python版简单工厂模式
2017/10/16 Python
几种实用的pythonic语法实例代码
2018/02/24 Python
使用requests库制作Python爬虫
2018/03/25 Python
Django URL参数Template反向解析
2020/11/24 Python
html5指南-2.如何操作document metadata
2013/01/07 HTML / CSS
解决HTML5中的audio在手机端和微信端的不能自动播放问题
2019/11/04 HTML / CSS
记帐员岗位责任制
2014/02/08 职场文书
销售主管竞聘书
2014/03/31 职场文书
教师学习三严三实心得体会
2014/10/13 职场文书
2014年招生工作总结
2014/11/26 职场文书
《唯一的听众》教学反思
2016/02/18 职场文书
Nginx反爬虫策略,防止UA抓取网站
2021/03/31 Servers
使用HBuilder制作一个简单的HTML5网页
2022/07/07 HTML / CSS