mobileperf
https://github.com/alibaba/mobileperf

自动化工具

自动化的工具

appium的使用

  • server

    1. npm install -g appium@1.19.1 --force
  • client

参考官方文档 https://appium.io/docs/en/about-appium/getting-started/?lang=zh

配置开发环境

  1. 创建新项目。
  2. 配置清华大学镜像站 (配置一次)
    1. pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
    image.png
    Mac
    1. pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
    安装 python appium 包

https://pypi.org/project/Appium-Python-Client/

  1. pip install Appium-Python-Client

Mac

  1. pip3 install Appium-Python-Client

image.png

appium 代码配置

通过配置可以告诉appium 代码执行时使用的是什么方式的引擎
https://appium.io/docs/en/writing-running-appium/caps/index.html

连接手机app

  1. import os
  2. # 导入appium 库中 webdriver 模块
  3. from appium import webdriver
  4. apk = os.path.join(os.path.dirname(os.path.abspath(__file__)),"apk/app-release.apk")
  5. desired_caps = {
  6. 'platformName': 'Android', # 测试Android系统
  7. 'platformVersion': '7.1.2', # Android版本 可以在手机的设置中关于手机查看
  8. 'deviceName': '127.0.0.1:62001', # adb devices 命令查看 设置为自己的设备
  9. 'automationName': 'UiAutomator2', # 自动化引擎
  10. 'app': apk # app 文件路径
  11. }
  12. # 创建 webdriver 实例 连接手机
  13. webdriver.Remote("http://127.0.0.1:4723/wd/hub",desired_capabilities=desired_caps)

app-cnode-11.zip

启动 appium server, 命令行中执行命令

  1. appium

image.png

需要注意的是:
使用手机测试的话,启动appium 的时候需要在手机上安装 appium setting 有些手机有安全选项 需要手动去确认一下。
image.png

元素定位

打开Android Sdk\tools\bin 目录下的 uiautomatorviewer.bat 文件
image.png

打开之后 点击元素获取按钮
image.png

id 定位 ,元素有resouce-id 属性
image.png

  1. import os
  2. # 导入appium 库中 webdriver 模块
  3. from appium import webdriver
  4. import time
  5. apk = os.path.join(os.path.dirname(os.path.abspath(__file__)),"apk/app-release.apk")
  6. desired_caps = {
  7. 'platformName': 'Android', # 测试Android系统
  8. 'platformVersion': '7.1.2', # Android版本 可以在手机的设置中关于手机查看
  9. 'deviceName': '127.0.0.1:62001', # adb devices 命令查看 设置为自己的设备
  10. 'automationName': 'UiAutomator2', # 自动化引擎
  11. 'app': apk # app 文件路径
  12. }
  13. # 创建 webdriver 实例 连接手机 本地appium 服务器端地址 http://127.0.0.1:4723/wd/hub
  14. driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub",desired_capabilities=desired_caps)
  15. time.sleep(4)
  16. # image btn
  17. image_btn = '//android.view.ViewGroup[@resource-id="org.cnodejs.android.md:id/toolbar"]/android.widget.ImageButton'
  18. # 根据xpath元素定位 点击
  19. driver.find_element_by_xpath(image_btn).click()
  20. # 等待动画加载完
  21. time.sleep(1)
  22. avatar_id = 'org.cnodejs.android.md:id/tv_login_name'
  23. driver.find_element_by_id(avatar_id).click()
  24. # a3be9c02-153f-410a-99f2-7a1335d2d6e0 http://47.100.175.62:3000/
  25. # 输入文本值
  26. driver.find_element_by_id('org.cnodejs.android.md:id/edt_access_token').send_keys("a3be9c02-153f-410a-99f2-7a1335d2d6e0")
  27. # 点击登录
  28. driver.find_element_by_id('org.cnodejs.android.md:id/btn_login').click()