详解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制作获取网站目录的图形化程序
May 04 Python
讲解Python中if语句的嵌套用法
May 14 Python
python验证码识别的实例详解
Sep 09 Python
Python打包可执行文件的方法详解
Sep 19 Python
Python基于回溯法子集树模板解决取物搭配问题实例
Sep 02 Python
Python爬虫PyQuery库基本用法入门教程
Aug 04 Python
python设计tcp数据包协议类的例子
Jul 23 Python
pygame实现俄罗斯方块游戏(AI篇1)
Oct 29 Python
Flask项目中实现短信验证码和邮箱验证码功能
Dec 05 Python
tensorflow 报错unitialized value的解决方法
Feb 06 Python
PyTorch如何搭建一个简单的网络
Aug 24 Python
python两种获取剪贴板内容的方法
Nov 06 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/12/06 PHP
PHP 中dirname(_file_)讲解
2007/03/18 PHP
PHP连接SQLSERVER 注意事项(附dll文件下载)
2012/06/28 PHP
基于session_unset与session_destroy的区别详解
2013/06/03 PHP
php代码审计比较有意思的例子
2014/05/07 PHP
php单文件版在线代码编辑器
2015/03/12 PHP
Riot.js 快速的JavaScript单元测试框架
2009/11/09 Javascript
Dom在ajax技术中的作用说明
2010/10/25 Javascript
javascript权威指南 学习笔记之变量作用域分享
2011/09/28 Javascript
解析Javascript中中括号“[]”的多义性
2013/12/03 Javascript
jquery live()重复绑定的解决方法介绍
2014/01/03 Javascript
原生js制作简单的数字键盘
2015/04/24 Javascript
JS+CSS3实现超炫的散列画廊特效
2016/07/16 Javascript
JS与jQuery实现隔行变色的方法
2016/09/09 Javascript
微信小程序 获取当前地理位置和经纬度实例代码
2016/12/05 Javascript
js 转义字符及URI编码详解
2017/02/28 Javascript
Vue利用路由钩子token过期后跳转到登录页的实例
2017/10/26 Javascript
一篇文章介绍redux、react-redux、redux-saga总结
2019/05/23 Javascript
浅谈vue中resetFields()使用注意事项
2020/08/12 Javascript
vue 如何从单页应用改造成多页应用
2020/10/23 Javascript
python列表去重的二种方法
2014/02/14 Python
Python3.2中的字符串函数学习总结
2015/04/23 Python
Python正则捕获操作示例
2017/08/19 Python
python3下使用cv2.imwrite存储带有中文路径图片的方法
2018/05/10 Python
美国高级工作服品牌:Carhartt
2018/01/25 全球购物
极简鞋类,赤脚的感觉:Lems Shoes
2019/08/06 全球购物
意大利时尚奢侈品店:D’Aniello Boutique
2021/01/19 全球购物
servlet面试题
2012/08/20 面试题
初中军训感想300字
2014/03/05 职场文书
青年安全生产示范岗事迹材料
2014/05/04 职场文书
政治学求职信
2014/06/03 职场文书
病假条格式范文
2015/08/17 职场文书
JavaScript实现显示和隐藏图片
2021/04/29 Javascript
python四个坐标点对图片区域最小外接矩形进行裁剪
2021/06/04 Python
Golang 并发下的问题定位及解决方案
2022/03/16 Golang
浅谈Redis 中的过期删除策略和内存淘汰机制
2022/04/03 Redis