第一章 APP自动化环境搭建(Mac版)
第二章 APP自动化环境搭建(Windows版)
第三章 adb命令
第四章 元素定位、元素操作
第五章 APP自动化测试框架搭建 Python+Appium+pytest-html
第六章 uiautomator2、web-editor基础操作
第七章 Airtest基础操作
第八章 ATX Server2多设备集群环境搭建


文章目录

  • 一、UiAutoMator2
    • 1、简介
    • 2、安装
  • 二、Web-editor
    • 1、简介
    • 2、安装
    • 3、启动
  • 三、UiAutoMator2 + Web-editor 自动化
    • 1、实例化对象
    • 2、启动app
    • 3、元素定位
    • 4、等待
    • 5、操作
  • 四、实例操作
  • 五、参考文档

一、UiAutoMator2

1、简介

UIAutomator2是⼀种Android UI⾃动化框架,该框架优点:
1.环境搭建便捷
2.UI控件识别可视化好
3.UI⾃动化编写采⽤python,学习成本低
4.UI⾃动化脚本运⾏稳定

缺点:
存在设备兼容性问题,如:
华为⼿机,⽆法通过IP离线执⾏UI⾃动化
三星S8⼿机微信webview⻚⾯⽆法识别元素

2、安装

1.将手机设备或虚拟机连接上电脑,adb devices确认设备已连接上

2.通过pip install uiautomator2 命令⾏安装

二、Web-editor

1、简介

web-editor 类似于appium中的inspector;其功能也是⽤于元素定位调试;

2、安装

通过 pip install weditor 命令⾏安装,如果出现以下报错好像是版本原因

可以试试指定版本安装pip install weditor==0.6.4,这里可以安装成功

3、启动

安装好之后,在终端直接输⼊ weditor 即可在默认浏览器中启动⼀个元素定位的调试界⾯,输入你的设备编码,点击Connect连接设备, Dump Hierarchy刷新同步设备界面。

如果页面提示python -m weditor,关闭终端重新打开输入提示命令运行即可。

三、UiAutoMator2 + Web-editor 自动化

1、实例化对象

点击右侧重置代码即可实例化

import uiautomator2 as u2d = u2.connect()

2、启动app

d.app_start("想要启动app的包名")

3、元素定位

选中想要操作的元素,右侧即可看见XPath路径,底部的代码也可以直接复制使用。同时也可以跟appium一样使用className、resourceId、text等定位方式。详细方式可以查看:https://developer.android.com/reference/android/support/test/uiautomator/UiSelector

4、等待

uiautomator2中的等待⼤部分和appium相同,有活动等待和元素等待;ele返回的是⼀个元素对象可以被操作。

ele = d.xpath('//*[@resource-id="com.suning.mobile.ebuy:id/home_floor_tab_menu_layout"]/android.widget.LinearLayout[3]/android.widget.RelativeLayout[1]/android.widget.LinearLayout[1]/android.widget.RelativeLayout[1]').wait()

5、操作

滑动操作:swipe
从sx,sy坐标滑动⾄ex,ey坐标 d.swipe(1000, 1000, 1000, 300)
拖拽操作:drag
从sx,sy坐标拖拽⾄ex,ey坐标 d.drag(1000, 1000, 1000, 300)
滚动界⾯:scroll
向上滚动 d(scrollable=True).scroll(steps=10)
向下滑动 d(scrollable=True).scroll.vert.backward()
⽔平向右滚动 d(scrollable=True).scroll.horiz.forward(steps=50)
⽔平向左滚动 d(scrollable=True).scroll.horiz.backward(steps=50)
⽔平滑动到最左边: d(scrollable=True).scroll.horiz.toBeginning(steps=100,max_swipes=1000)
⽔平滑动到最右边 d(scrollable=True).scroll.horiz.toEnd(steps=100,max_swipes=1000)
竖直滑动到结尾 d(scrollable=True).scroll.toEnd()
竖直滑动到开头 d(scrollable=True).scroll.toBeginning(steps=50)
滑动到指定位置(element) d(scrollable=True).scroll.to(resourceId=‘element_value’)

四、实例操作

1、举例某电商app,假设测试用例如下:

用例编号 用例描述 预期结果 实际结果 运行结果
test_001 首页点击新品tab,校验新品tab第一个商品价格,与详情页价格一致 新品tab第一个商品价格等于详情页价格 新品tab第一个商品价格等于详情页价格 成功

2、编写脚本

# -*- coding: utf-8 -*-
# @Time  : 2022/7/11 14:50
# Author : 拒绝内卷的小测试import uiautomator2 as u2# 实例化
d = u2.connect("eqb6w4zldmmvvwln")# 打开app('包名', '界面名')
d.app_start('com.suning.mobile.ebuy')# 滑动到新品tab标签位置
d(scrollable=True).scroll.to(resourceId='com.suning.mobile.ebuy:id/layout_big_title')# 点击新品tab标签
d.xpath('//*[@resource-id="com.suning.mobile.ebuy:id/home_floor_tab_menu_layout"]/android.widget.LinearLayout[3]/android.widget.RelativeLayout[1]/android.widget.LinearLayout[1]/android.widget.RelativeLayout[1]').click()# 获取首页商品价格
home_price = d(resourceId="com.suning.mobile.ebuy:id/product_price_tv_1").get_text()
# print(f"home_price: {home_price}")# 点击进入商品详情页
d(resourceId="com.suning.mobile.ebuy:id/product_price_tv_1").click()# 获取详情页价格
page_price = d(resourceId="com.suning.mobile.ebuy:id/tv_flash_sale_price").get_text()
# print(f"page_price: {page_price}")# 断言首页价格与详情页价格相等
assert home_price == page_price, f"首页价格为:{home_price},详情页价格为{page_price}"

五、参考文档

uiautomator2:https://github.com/openatx/uiautomator2
web-editor:https://github.com/alibaba/web-editor
uiautomator2 selector:https://github.com/openatx/uiautomator2#selector

随手点赞一次,运气增加一份。

APP自动化测试框架搭建(六)--uiautomator2、web-editor基础操作相关推荐

  1. APP自动化测试框架搭建(五)--Python+Appium+pytest-html

    第一章 APP自动化环境搭建(Mac版) 第二章 APP自动化环境搭建(Windows版) 第三章 adb命令 第四章 元素定位.元素操作 第五章 APP自动化测试框架搭建 Python+Appium ...

  2. APP自动化测试框架搭建(八)--ATX Server2多设备集群环境搭建

    第一章 APP自动化环境搭建(Mac版) 第二章 APP自动化环境搭建(Windows版) 第三章 adb命令 第四章 元素定位.元素操作 第五章 APP自动化测试框架搭建 Python+Appium ...

  3. 自动化测试框架搭建-日志-2

    在上一节的自动化测试框架搭建-[配置]的基础上为框架加上日志log,既然用到了log类,可以学习Python-logging进行学习,在utils中创建一个log.py文件,Python有很方便的lo ...

  4. python web自动化测试框架搭建(功能接口)——功能测试模块

    功能测试使用selenium,模块有: 1.futil: 公共方法,如元素高亮显示 # coding=utf-8 """高亮显示元素""" ...

  5. WEB UI自动化测试框架搭建(一)_公用方法Utils

    本栏目内的所有项目使用的都是PyCharm 2020.1专业版,可以下载后自行在网上找教程破解. WEB UI自动化测试框架搭建(一)~(七)源代码:https://download.csdn.net ...

  6. python安装robotframework报错_Python3+RIDE+RobotFramework自动化测试框架搭建过程详解

    Python2.7已于2020年1月1日开始停用,之前RF做自动化都是基于Python2的版本. 没办法,跟随时代的脚步,我们也不得不升级以应用新的控件与功能. 升级麻烦,直接全新安装. 一.Pyth ...

  7. Python+unittest+requests 接口自动化测试框架搭建 完整的框架搭建过程 实战

    一.Python+unittest+requests+HTMLTestRunner 完整的接口自动化测试框架搭建_00--框架结构简解 首先配置好开发环境,下载安装Python并下载安装pycharm ...

  8. python app自动化测试框架_appium+python,app自动化测试框架

    基于appium的app自动化测试框架 基于appium框架的app自动化测试 App自动化测试主要难点在于环境的搭建,appium完全是基于selenium进行的扩展,所以app测试框架也是基于we ...

  9. UI自动化测试框架搭建-标记性能较差用例

    在拿到性能数据后需要将数据利用起来,下面对性能数据进行分析 实现:如果性能达到设定的阈值,那么这段时间执行的用例就是性能较差的用例 确定阈值 首先确定一个阈值来当做性能的告警值,暂定为以下算法 # t ...

最新文章

  1. JAVA 静态变量与静态方法
  2. LDAP 轻量级目录访问协议 介绍
  3. Fast implementation/approximation of pow() function in C/C++
  4. 自适应页面 移动端获取焦点自动放大_专业 | 惠检LIMS系统:手机移动应用(MA)...
  5. 如何使用 React 创建一个作品集网站
  6. 关键段 互斥量 以及信号量
  7. scal的函数定义(day01)
  8. partproble在RHEL 6下无法更新分区信息
  9. vc++.net 移植到 C#中的几点注意事项
  10. 《统计学习方法》—— k近邻方法、kd树以及python3实现
  11. CSS3 Gradient 渐变
  12. [软件工程] 数据字典
  13. QQIP纯真数据库调用全国省市地址
  14. 20145322何志威 《Java程序设计》第8周学习总结
  15. 淘宝卖家过劳死VS跳楼死
  16. 工程经济有何难,思维导图来助阵
  17. java怎么才能学透彻?
  18. python:使用 PythonMagick 生成 icon 图标
  19. Laravel框架使用maatwebsite/excel导出自动换行
  20. 【python】遍历log查找符合关键字的log

热门文章

  1. ffmpeg基础四:RTP协议
  2. python列转行函数_Python pandas 列转行操作详解(类似hive中explode方法)
  3. ajax文件上传重置,通过ajax上传文件时的ERR_CONNECTION_RESET
  4. 神舟z7m安装Linux,神舟战神Z7M-CT7GS笔记本win10系统下载与安装教程
  5. 仿写小米官网(登录、注册页面、首页、详情页、购物车)
  6. Python入门学习难吗
  7. MAC OS 命令行删除分区方法
  8. 到底死不死我就请了七天假_“我就请了7天假,你到底死不死啊?”
  9. AtCoder Beginner Contest 151
  10. 野火STM32寄存器点亮LED灯详解