python自动化app自动化:6.常见的UI自动化测试平台工具

Posted new nm个对象

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python自动化app自动化:6.常见的UI自动化测试平台工具相关的知识,希望对你有一定的参考价值。

一.自动化遍历测试技术

1.为什么需要自动化遍历

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二.android monkey测试工具

1.简介

在这里插入图片描述

2.安装

在这里插入图片描述

3.使用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三.Android maxim测试工具

1.简介

在这里插入图片描述

2.安装

下载代码包:

git clone https://github.com/zhangzhao4444/Maxim.git

将framework.jar和monkey.jar两个jar包,push到手机目录,推荐/sdcard

adb push framework.jar /sdcard
adb push monkey.jar /sdcard

3.运行

cmd 命令 :

adb shell CLASSPATH=/sdcard/monkey.jar:/sdcard/framework.jar exec app_process /system/bin tv.panda.test.monkey.Monkey -p com.panda.videoliveplatform --uiautomatormix --running-minutes 60 -v -v
  • tv.panda.test.monkey.Monkey: monkey入口类,不要修改
  • com.panda.videoliveplatform: 被测app包名,需要修改
  • --uiautomatormix: 遍历策略
  • –running-minutes 60:运行60分钟

遍历策略

  1. 模式 Mix (基于事件概率的压力测试)

    --uiautomatormix
    直接使用底层accessibiltyserver获取界面接口 解析各控件,随机选取一个控件执行touch操作。
      同时与原monkey 其他操作按比例混合使用
      默认accessibilityserver action占比50%,其余各action分剩余的50%
      accessibilityserver action占比可配置 --pct-uiautomatormix n
    
  2. 模式 DFS

--uiautomatordfs
深度遍历算法
  1. 模式Troy
--uiautomatortroy
控件选择策略按max.xpath.selector配置的高低优先级来进行深度遍历

其他用法:

  1. 保留原始monkey
  2. 总运行时长 --running-minutes 3 运行3分钟
  3. –act-whitelist-file /sdcard/awl.strings 定义白名单 --act-blacklist-file

其他参数与原始monkey一致

四.AppCrawler测试工具

1.简介

一个基于自动遍历的app爬虫工具. 支持android和ios, 支持真机和模拟器. 最大的特点是灵活性. 可通过配置来设定遍历的规则.

AppCrawler优点:

  • 各大云市场上自动遍历功能都多有限制企业无法自由定制.
  • 解决monkey等工具可控性差的缺点
  • 发现深层次的UI兼容性问题
  • 通过新老版本的diff可以发现每个版本的UI变动范围
    在这里插入图片描述

2.环境安装

1.安装appium和adb

2.安装AppCrawler:

地址:https://github.com/seveniruby/AppCrawler

在这里插入图片描述

3.使用对应jar包运行即可。

在这里插入图片描述

3.使用

第一步:启动appium

第二步:连接真机或模拟器

第三步:运行AppCrawler

(1)简单运行AppCrawler

java -jar appcrawler-2.4.0-jar-with-dependencies.jar----------获取帮助文档
java -jar appcrawler-2.4.0-jar-with-dependencies.jar --capability "appPackage=com.xueqiu.android,appActivity=.main.view.MainActivity"-----遍历app,默认是随机事件

(2)使用配置文件启动AppCrawler

  • steps的使用
# 生成配置文件
java -jar appcrawler-2.4.0-jar-with-dependencies.jar --demo
# 再安照遍历规则编写yml文件
# 执行AppCrawlerAppCrawler
java -jar appcrawler-2.4.0-jar-with-dependencies.jar -c demo.yml

五。跨平台设备管理:selenium grid

1.简介

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

什么时候用Selenium Grid

  • 同时在不同的浏览器、操作系统和机器上运行测试。最大程度用于兼容性测试
  • 减少运行时间

2.环境安装

1.进入selenium官网:https://www.selenium.dev/

2.下载selenium grid

在这里插入图片描述
在这里插入图片描述

3.将下载的jar包放置在一个路径下,并配置环境变量

3.使用

1.编写一个json格式的配置文件(node.json)。

capabilities:指定浏览器的类型

hub:指定hub的url

# filename = node.json
{
  "capabilities":
  [
    {
      "browserName": "chrome",
      "maxInstances": 5,
      "seleniumProtocol": "WebDriver"
    } 
  ],
  "proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy",
  "maxSession": 5,
  "port": -1,
  "register": true,
  "registerCycle": 5000,
  "hub": "http://localhost:4444",
  "nodeStatusCheckTimeout": 5000,
  "nodePolling": 5000,
  "role": "node",
  "unregisterIfStillDownAfter": 60000,
  "downPollingLimit": 2,
  "debug": false,
  "servlets" : [],
  "withoutServlets": [],
  "custom": {}
}

2.启动hub

java -jar selenium-server-standalone-3.141.59.jar -role hub

3.启动node

java -jar selenium-server-standalone-3.141.59.jar -role node -nodeConfig node.jsonjava -jar selenium-server-standalone-3.141.59.jar -role node -nodeConfig node.json

需要启动几个浏览器就打开几个终端,启动node

4.python代码中使用node

from selenium.webdriver import DesiredCapabilities
from selenium.webdriver import Remote

class TestDemo:

    def test_grid(self):
        hub_url = "http://127.0.0.1:4444/wd/hub" # 指定hub地址
        capability = DesiredCapabilities.CHROME.copy() # 指定浏览器
        for i in range(1,5):
            driver = Remote(command_executor=hub_url,desired_capabilities=capability) # 通过远程hub获取浏览器
            driver.get('https://home.testing-studio.com/')
            driver.quit()

注意,这样运行还是启动一个浏览器运行完毕后,继续启动下一个浏览器。因为我们在python中只启动了一个进程,如果要实现多浏览器同时运行,需要在python中启动多进程。

以上是关于python自动化app自动化:6.常见的UI自动化测试平台工具的主要内容,如果未能解决你的问题,请参考以下文章

基于python实现UI自动化6.selenium实现浏览器相关操作(最大化自定义宽高前进后退)

基于python实现UI自动化6.selenium实现浏览器相关操作(最大化自定义宽高前进后退)

基于python实现UI自动化6.selenium实现浏览器相关操作(最大化自定义宽高前进后退)

基于python实现UI自动化6.selenium实现浏览器相关操作(最大化自定义宽高前进后退)

APP UI自动化测试常见面试题,或许有用呢~

手机APP自动化之uiautomator2 +python3 UI自动化