使用Appium2.0自动化规模测试APP

这篇具有很好参考价值的文章主要介绍了使用Appium2.0自动化规模测试APP。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近做个项目需要测试服务端的并发性能,客户端采用安卓,接口数据采用Restul和流媒体播放。由于流媒体的接口并不清楚,所以决定采用安卓虚拟机来模拟。
正好赶上Appium2.0升级,网上的很多资料都不能用了,这里将整个环境搭建的要点记录下来与大家分享。
#1. Appium2.0的安装

  • node.js 下载安装npm
    https://nodejs.org/zh-cn/
  • npm配置国内源
    查看当前源
npm config get registry

设置为淘宝源

npm config set registry https://registry.npm.taobao.org
  • 安装appium 2.0 Server和安卓驱动
npm install -g appium@next
appium driver install uiautomator2

#2.Appium客户端脚本
本次采用python客户端,使用python3.7以上版本。下面安装python客户端。

pip install Appium-Python-Client

编写测试脚本

import unittest
from appium import webdriver
from appium.webdriver.common.appiumby import AppiumBy

capabilities = dict(
    platformName='Android',
    automationName='uiautomator2',
    deviceName='Android',
    appPackage='com.android.settings',
    appActivity='.Settings',
    language='en',
    locale='US'
)

appium_server_url = 'http://localhost:4723'

class TestAppium(unittest.TestCase):
    def setUp(self) -> None:
        self.driver = webdriver.Remote(appium_server_url, capabilities)

    def tearDown(self) -> None:
        if self.driver:
            self.driver.quit()

    def test_find_battery(self) -> None:
        el = self.driver.find_element(by=AppiumBy.XPATH, value='//*[@text="Battery"]')
        el.click()

if __name__ == '__main__':
    unittest.main()

到这里运行这个脚本,就可以实现单机的自动化测试了。
#3.多个安卓模拟器并行测试
使用Android Studio Bumblebee,这是最后一个支持java 8的版本 https://developer.android.google.cn/studio/archive
在device manager中创建多个模拟器
改写测试脚本,对每个模拟器添加参数

capabilitiesA = dict(
    platformName='Android',
    automationName='uiautomator2',
    deviceName='Android',
    appPackage='com.android.settings',
    appActivity='.Settings',
    language='en',
    locale='US',
    udid='emulator-5554',
    mjpegServerPort='9200',
    systemPort='8200'
)

其中 udid, mjpegServerPort, systemPort每个模拟器都需要定义不同端口。
并行测试脚本如下

import unittest
from appium import webdriver
from appium.webdriver.common.appiumby import AppiumBy

capabilitiesA = dict(
    platformName='Android',
    automationName='uiautomator2',
    deviceName='Android',
    appPackage='com.android.settings',
    appActivity='.Settings',
    language='en',
    locale='US',
    udid='emulator-5554',
    mjpegServerPort='9200',
    systemPort='8200'
)

capabilitiesB = dict(
    platformName='Android',
    automationName='uiautomator2',
    deviceName='Android',
    appPackage='com.android.settings',
    appActivity='.Settings',
    language='en',
    locale='US',
    udid='emulator-5556',
    mjpegServerPort='9201',
    systemPort='8201'
)

capabilitiesC = dict(
    platformName='Android',
    automationName='uiautomator2',
    deviceName='Android',
    appPackage='com.android.settings',
    appActivity='.Settings',
    language='en',
    locale='US',
    udid='emulator-5558',
    mjpegServerPort='9202',
    systemPort='8202'
)

appium_server_url = 'http://localhost:4723'

class TestAppium(unittest.TestCase):
    def setUp(self) -> None:
        self.driverA = webdriver.Remote(appium_server_url, capabilitiesA)
        self.driverB = webdriver.Remote(appium_server_url, capabilitiesB)
        self.driverC = webdriver.Remote(appium_server_url, capabilitiesC)

    def tearDown(self) -> None:
        if self.driverA:
            self.driverA.quit()
        if self.driverB:
            self.driverB.quit()
        if self.driverC:
            self.driverC.quit()

    def test_find_battery(self) -> None:
        el = self.driverA.find_element(by=AppiumBy.XPATH, value='//*[@text="Display"]')
        el.click()
        el = self.driverB.find_element(by=AppiumBy.XPATH, value='//*[@text="Display"]')
        el.click()
        el = self.driverC.find_element(by=AppiumBy.XPATH, value='//*[@text="Display"]')
        el.click()

if __name__ == '__main__':
    unittest.main()

#4.下一步计划文章来源地址https://www.toymoban.com/news/detail-718421.html

  • 把安卓模拟器搬到docker上。
  • 使用jenkins运行测试脚本。

到了这里,关于使用Appium2.0自动化规模测试APP的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Appium 2安装与使用java对Android进行自动化测试

    1.1、系统要求 当前Appium2.1服务器的要求: 支持macOS、Linux或Windows操作系统 Node.js版本要求^14.17.0 || ^16.13.0 | =18.0.0 NPM版本= 8 (NPM通常与Node.js捆绑在一起,但可以独立升级) 系统要求:http://appium.io/docs/en/2.1/intro/requirements/ 1.2、安装Appium2.1服务 下载nodejs:https://nodejs.org/zh-cn/download

    2024年02月12日
    浏览(46)
  • App自动化测试|Appium+Python自动化测试环境搭建

    搭建过程步骤如下: 安装jdk并配置好环境变量(jdk版本1.8以上) 安装android-sdk并配置好环境变量;具体步骤见:Android Studio安装(推荐使用这种方法安装SDK) - 环境配置 - 测试人社区 安装安卓模拟器 安装node.js(官网下载安装最新版本) ;下载地址:下载 | Node.js 中文网 找到wind

    2024年02月12日
    浏览(31)
  • Appium 自动化测试

    1.Appium介绍 1,appium是开源的移动端自动化测试框架; 2,appium可以测试原生的、混合的、以及移动端的web项目; 3,appium可以测试ios,android应用(当然了,还有firefoxos); 4,appium是跨平台的,可以用在osx,windows以及linux桌面系统上; 2.Appium基本原理 在Android端,appium基于We

    2024年02月01日
    浏览(37)
  • Appium自动化(15) - 针对 webview 进行自动化测试

     🔥 交流讨论: 欢迎加入我们一起学习! 🔥 资源分享 : 耗时200+小时精选的「软件测试」资料包 🔥  教程推荐: 火遍全网的《软件测试》教程   📢 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! WebView是android中一个非常重要的控件 它的作用是用来展示一个web页面

    2024年04月10日
    浏览(41)
  • 一文详解!appium自动化测试

    目录 前言: Appinum前置知识 Andriod SDK 元素获取—UI Automator adb命令实践 adb常用命令 小结 Package与Activity Activity页面布局元素 monkey简介 monkey事件 操作事件简介 monkey参数 事件类参数 约束类参数 调试类参数 Monkey参数应用综合案例 Monkey脚本API简介 monkey日志管理 monkeyrunner MonkeyR

    2024年02月11日
    浏览(36)
  • appium+python自动化测试

    1、aapt即Android Asset Packaging Tool,在SDK的build-tools目录下。该工具可以查看apk包名和launcherActivity 2、在android-sdk里面双击SDK-manager,下载buidl-tools 3、勾选build-tools,随便选一个版本,我这里选的是24的版本 4、下载完成后:在D:androidsdkandroid-sdk-windowsbuild-tools24.0.0目录下找到aapt.e

    2024年02月10日
    浏览(30)
  • 【python+appium】自动化测试

    python+appium自动化测试系列就要告一段落了,本篇博客咱们做个小结。 首先想要说明一下,APP自动化测试可能很多公司不用,但也是大部分自动化测试工程师、高级测试工程师岗位招聘信息上要求的,所以为了更好的待遇,我们还是需要花时间去掌握的,毕竟谁也不会跟钱过

    2024年02月14日
    浏览(26)
  • appium实现自动化测试原理

    目录 1、Appium原理 1.1、Android Appium原理图文解析 1.1.2、原理详解 1.1.2.1、脚本端 1.1.2.2、appium-server 1.1.2.3、中间件bootstrap.jar 1.1.2.4、驱动引擎uiautomator 1.2、 IOS Appium原理 执行测试脚本全过程: 1、测试脚本通过Json Wire Protocol协议以json格式将数据通过HTTP协议与appium-server之间进行

    2024年02月20日
    浏览(34)
  • 『App自动化测试之Appium应用篇』| 继承于selenium常用的元素定位方法有哪些?如何使用?

    在了解元素等位前,我们先了解下 app 的一些类型,只有了解这些 app 的类型才能针对性的选择元素定位方法; 因为不同类型的app的定位方式可能存在差异性; 我们了解到 APP 可以分为原生 APP 、 Web APP 、混合 APP 。 而原生 APP 是基于 Android 或 iOS 平台官方的语言、类库、工具

    2024年02月03日
    浏览(36)
  • (第一篇,踩坑无数得来的,对Ai自动化测试框架很有帮助)appium自动化测试时遇到不能使用element定位的在用坐标点击之后获取焦点如何输入文本

      现在开发的前端界面使用vue或者更牛逼技术,导致使用appium或者uiautomator2做自动化测试时不能识别到元素,无法使用传统的id,name或者xpath,这时我们需要使用坐标点击文本框。有获取坐标方法,下期写一篇文章,可以在评论区提醒瑞克。  

    2024年02月03日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包