详解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进阶教程之模块(module)介绍
Aug 30 Python
python冒泡排序简单实现方法
Jul 09 Python
Python搭建HTTP服务器和FTP服务器
Mar 09 Python
Python2随机数列生成器简单实例
Sep 04 Python
Python continue继续循环用法总结
Jun 10 Python
Python3随机漫步生成数据并绘制
Aug 27 Python
python随机在一张图像上截取任意大小图片的方法
Jan 24 Python
DRF跨域后端解决之django-cors-headers的使用
Jan 27 Python
django-初始配置(纯手写)详解
Jul 30 Python
python logging 日志的级别调整方式
Feb 21 Python
Python基于time模块表示时间常用方法
Jun 18 Python
Python批量解压&压缩文件夹的示例代码
Apr 04 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/04 PHP
ThinkPHP简单使用memcache缓存的方法
2016/11/15 PHP
ThinkPHP框架实现导出excel数据的方法示例【基于PHPExcel】
2018/05/12 PHP
jQuery 事件队列调整方法
2009/09/18 Javascript
jQuery的一些特性和用法整理小结
2010/01/13 Javascript
JavaScript之Getters和Setters 平台支持等详细介绍
2012/12/07 Javascript
input输入框的自动匹配(原生代码)
2013/03/19 Javascript
jquery中加载图片自适应大小主要实现代码
2013/08/23 Javascript
js常用系统函数用法实例分析
2015/01/12 Javascript
jQuery使用元素属性attr赋值详解
2015/02/27 Javascript
简单分析javascript面向对象与原型
2015/05/21 Javascript
详解nodejs与javascript中的aes加密
2016/05/22 NodeJs
Bootstrap图片轮播组件使用实例解析
2016/06/30 Javascript
jQuery继承extend用法详解
2016/10/10 Javascript
easyui导出excel无法弹出下载框的快速解决方法
2016/11/10 Javascript
微信小程序开发之录音机 音频播放 动画实例 (真机可用)
2016/12/08 Javascript
bootstrap基本配置_动力节点Java学院整理
2017/07/14 Javascript
JS中的Replace()传入函数时的用法详解
2017/09/11 Javascript
js 倒计时(高效率服务器时间同步)
2017/09/12 Javascript
详解JS中的this、apply、call、bind(经典面试题)
2017/09/19 Javascript
phantomjs导出html到pdf的方法总结
2017/10/19 Javascript
微信小程序实现点击按钮修改view标签背景颜色功能示例【附demo源码下载】
2017/12/06 Javascript
使用vue实现grid-layout功能实例代码
2018/01/05 Javascript
vue利用axios来完成数据的交互
2018/03/23 Javascript
JavaScript模板引擎实现原理实例详解
2018/12/14 Javascript
原生JS与JQ获取元素的区别详解
2020/02/13 Javascript
python网络编程之UDP通信实例(含服务器端、客户端、UDP广播例子)
2014/04/25 Python
django模板结构优化的方法
2019/02/28 Python
Python3.4学习笔记之类型判断,异常处理,终止程序操作小结
2019/03/01 Python
Python代码使用 Pyftpdlib实现FTP服务器功能
2019/07/22 Python
萌新的HTML5 入门指南
2020/11/06 HTML / CSS
少年闰土教学反思
2014/02/22 职场文书
自主招生推荐信范文
2014/05/10 职场文书
党员剖析材料范文
2014/09/30 职场文书
领导班子四风查摆对照检查材料思想汇报
2014/10/05 职场文书
党员干部作风建设思想汇报范文
2014/10/25 职场文书