uiautomator

Android 自动化测试资料汇总

瘦欲@ 提交于 2019-12-01 05:41:16
android常用自动化测试框架 Android UI 自动化测试 使用uiautomator做UI测试 . 在 Android studio 上运用 UI Automator 执行自动化测试 Android Espresso(UI自动化测试)的搭建 Android UI 自动化测试实现过程 android 的 Testing Support Library 测试支持包(库) 自动化测试框架思路简单分享 Android自动化测试之Athrun:用例分析 Android自动化测试-cafe自动化测试框架学习(一) Zinc30 几种常见的Android自动化测试框架及其应用 腾讯开源 UI 自动化测试框架 FAT Soloπ 自动化测试工具 来源: oschina 链接: https://my.oschina.net/u/113858/blog/714627

appium---uiautomator定位方法

余生长醉 提交于 2019-11-30 18:58:36
  前面总结了7种定位方法,今天在介绍一种uiautomator方法,其实appium就是基于uiautomator框架实现的,让我们一起看下uiautomator有哪些定位方法可以使用 uiautomator是什么 UIAutomator是android的自动化测试框架,也是Android-Sdk中一个查看页面组件元素工具 uiautomator定位方法 前面介绍了常规的定位方法,这里uiautomator又提供了3种常用的定位方法,这次我们主要通过uiautomator方法进行介绍,定位的话依旧拿淘宝来做实战 通过Text方法 1、text(“text文本”) text = 'text("注册/登录")' driver.find_element_by_android_uiautomator(text).click() 2、文本比较长,可以使用textContains模糊查询定位 textContains('text文本') text1 = 'textContains("请输入手机号码")' driver.find_element_by_android_uiautomator(text1).send_keys("123456") 3、textStartsWith("以text文本开头") text2 = 'textStartsWith("请输入验证码")' driver.find

android UiAutomator控制多台手机同时运行用例的方法

﹥>﹥吖頭↗ 提交于 2019-11-30 14:51:25
本人在使用android UiAutomator的时候,有个问题一直困扰着我,使用调试类做测试,电脑只能插上一台手机,前些天偶然发现了adb命令里面有一个 -s 的参数可以区分不同的手机设备,故修改了一下快速调试类的方法,使得能够同时连上两台手机做测试了,下面分享一下主要的代码,共大家参考。 下面这个是快速调试类的运行方法,多加一个参数就可以了: public UiAutomatorHelper(String jarName, String testClass, String testName, String androidId, String devicesId) { System.out.println("-----------start--uiautomator--debug-------------"); workspace_path = getWorkSpase(); System.out.println("----工作空间:\t\n" + getWorkSpase()); jar_name = jarName; test_class = testClass; test_name = testName; android_id = androidId; devices = devicesId; runUiautomator(); System.out.println("**

Python3_Appium_QQ 实战

♀尐吖头ヾ 提交于 2019-11-30 08:56:19
Python3_Appium实战 -海盐 APPium移动自动化测试 样例中 测试的 app 使用的是 QQ; Appium介绍 Appium 是一个自动化测试开源工具,支持 iOS 平台和 Android 平台上的原生应用,web 应用和混合 应用。 所谓的“移动原生应用”是指那些用 iOS 或者 Android SDK 写的应用(Application 简称 app)。所 谓的“移动 web 应用”是指使用移动浏览器访问的应用(Appium 支持 iOS 上的 Safari 和 Android 上的 Chrome)。所谓的“混合应用”是指原生代码封装网页视图——原生代码和 web 内容交互。比如, 像 Phonegap,可以帮助开发者使用网页技术开发应用,然后用原生代码封装,这些就是混合应用。 重要的是,Appium 是一个跨平台的工具:它允许测试人员在不同的平台(iOS,Android)使用同一套 API 来写自动化测试脚本,这样大大增加了 iOS 和 Android 测试套件间代码的复用性。 Appium 与 Selenium Appium 类库封装了标准 Selenium 客户端类库,为用户提供所有常见的 JSON 格式 selenium 命令以及 额外的移动设备控制相关的命令,如多点触控手势和屏幕朝向。 Appium 客户端类库实现了 Mobile JSON Wire

android UiAutomator让运行失败的用例重新运行

限于喜欢 提交于 2019-11-30 03:52:09
本人在使用android UiAutomator做测试的时候,发现经常会因为页面加载太慢或者网络延迟比较大又或者出现意外情况导致用例失败,但是在检查的时候又能运行成功,提出了一个让失败的用例重新运行的需求,经过尝试终于成功了,使用excel作为测试报告的类型,html的类似,下面分享一下运行的代码,供大家参考。 List<String[]> firstsheet = new ArrayList<String[]>();//新建list,用于存放每个测试用例的测试结果 String[] title = {"编号", "用例名", "运行状态", "错误信息", "错误行Library", "错误行Special", "错误行Case", "开始时间", "结束时间"}; firstsheet.add(title);//把标题行先加入表信息 new RunHelper(jarname, "1");//新编译jar包并push到手机上 setMobileInputMethodToUtf();//设置手机输入法为UTF-7 for(int i = 0;i < MethodList.size(); i++){//遍历运行所有方法 String[] result = execCmdAndReturnResult(jarname, "student.Case", MethodList.get(i

android UiAutomator如何根据颜色判断控件的状态

痴心易碎 提交于 2019-11-29 09:37:59
本人在用UiAutomator做测试的时候,经常会遇到一些控件因为不同的条件显示不同的颜色,在学习了UiAutomator图像处理之后,自己尝试写了一个方法来处理不同颜色控件的区分。分享代码供大家参考。 //根据颜色判断状态 public boolean isBlue(UiObject uiObject) throws UiObjectNotFoundException { screenShot("test");//截图 String path = "/mnt/sdcard/123/test.png"; Bitmap bitmap = BitmapFactory.decodeFile(path);//新建并实例化bitmap对象 Rect rect = uiObject.getVisibleBounds(); int x = rect.left; int xx = rect.right; int y = rect.top; int yy = rect.bottom; List<Integer> blueColor = new ArrayList<Integer>(); for (int i = x; i < xx; i++) { for (int k = y;k < yy;k++) { int color = bitmap.getPixel(i, k);//获取坐标点像素颜色

android UiAutomator自定义快速调试类

别说谁变了你拦得住时间么 提交于 2019-11-29 05:53:01
本人在使用UiAutomator的过程中,一直用快速调试类来做测试,发现其中很多地方都需要根据不同的需求做修改,今天特意花了点时间总体修改一遍,更加灵活了,又写了很多中文注释。分享出来,供大家参考。 package student; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStreamWriter; public class UiAutomatorHelper { private static String android_id = "1";//androidId,写好不用传参 private static String jar_name = "";//jar名字 private

uiautomator2+python自动化测试1-环境准备

家住魔仙堡 提交于 2019-11-28 15:23:07
前言 uiautomator是Google提供的用来做安卓自动化测试的一个Java库。功能很强,可以对第三方App进行测试,获取屏幕上任意一个APP的任意一个控件属性,并对其进行任意操作,但有两个缺点: 测试脚本只能使用Java语言 测试脚本必须每次被上传到设备上运行。 我们希望测试能够用Python编写,能够在电脑上运行的时候就控制手机,于是就有了uiautomator,后来又有了uiautomator2,详情查看github地址 https://github.com/openatx/uiautomator2 环境准备 python 3.6 uiautomator2 0.3.3 uiautomator2工作原理 分为两个部分: PC上的python端:运行脚本,并向系统设备发送http请求 移动设备:移动设备上运行了封装了uiautomator2的HTTP服务,解析收到的请求,并转化成uiautomator2的代码。 详情可以参考这篇: https://blog.csdn.net/zhuhuahong/article/details/81868671 1.安装uiautomator2 使用pip3安装uiautomator2 ,安装的过程中有点坑,用 pip install --pre -U uiautomator2 一直安装失败,找了很多教程都是这个。

如何在Mac OS上使用UiAutomator快速调试类

一笑奈何 提交于 2019-11-28 07:27:51
本人最近在Mac OS上使用UiAutomator快速调试类的时候发现跟Windows环境下使用有很大的区别,对于我这个Mac OS小白来说有很多坑要填,今天终于修改完毕,分享代码,供大家参考。主要区别就是在执行命令的时候需要把命令前面加上执行全路径。还有一个就是斜杠的问题,统一改过来就可以了。 遇到的报错情况: 下面这个是没有配置全路径时的报错信息: Cannot run program "android": error=2, No such file or directory 下面这个是路径错误时的报错信息: Cannot run program "/Users/dahaohaozai/android-sdk-macosx/toos/android": error=2, No such file or directory 下面是调试类的代码: package source; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io