当前位置: 首页 > news >正文

Python+appium实现自动化测试

目录

一、工具与环境准备 

二、开始测试

1、插上手机,打开usb调试,选中文件传输,我这里用华为手机为例

2、启动Appium Server GUI​编辑

3、启动 Inspector Session

4、录制脚本


        使用Python和Appium进行自动化测试是一种常见的移动应用测试方法。Appium是一个开源工具,它允许你使用各种编程语言(如Python、Java、JavaScript等)来编写测试脚本,以自动化测试iOS和Android应用。

一、工具与环境准备 

   1、 Appium-Inspector-2024.8.2-win-x6

   2、Appium Server GUI v1.5.1以上

   3、脚本语言:Python3.x  、nodejs

   4、IDE:安装Pycharm

   5、安装Java JDK 、Android SDK、win10环境

   6、使用pip安装Appium的Python客户端库:pip install Appium-Python-Client

二、开始测试

1、插上手机,打开usb调试,选中文件传输,我这里用华为手机为例

    如需测试设备是否连接成功,可打开win系统cmd命令窗口,执行。

adb devices

出现如下所示则代表手机设备连接成功

2、启动Appium Server GUI

启动成功

3、启动 Inspector Session

现对配置字段进行解释:

platformName :代表的系统是ios还是Android

platformVersion : Android内核版本号

可通过cmd命令下执行adb shell getprop ro.build.version.release查看例如

deviceName :连接的设备名称,通过命令adb devices -l中model查看

appPackage :apk的包名

appActivity:apk的launcherActivity,通过命令adb shell dumpsys activity | findstr “mResume”查看(需先打开手机应用)另外(注意:Android 8.1之前应使用adb shell dumpsys activity | findstr “mFocus”)

4、录制脚本

启动连接

按下面步骤点击录制脚本

Selected Element 区域有三个按钮

  • Tap:执行选中元素的点击事件
  • Send Keys:为文本框等对象传值
  • 如果是文本输入元素,就清除文本

然后会输出python脚本

在此间基础上新增延迟5秒退出

# 设置延时(例如5秒)

from time import sleep


sleep(5)

# This sample code supports Appium Python client >=2.3.0
# pip install Appium-Python-Client
# Then you can paste this into a file and simply run with Python
from time import sleepfrom appium import webdriver
from appium.options.common.base import AppiumOptions
from appium.webdriver.common.appiumby import AppiumBy# For W3C actions
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.actions import interaction
from selenium.webdriver.common.actions.action_builder import ActionBuilder
from selenium.webdriver.common.actions.pointer_input import PointerInputoptions = AppiumOptions()
options.load_capabilities({"appium:deviceName": "_BD00","platformName": "Android","appium:platformVersion": "11","appium:appPackage": "com.huawei.calculator","appium:appActivity": "com.huawei.calculator.Calculator","appium:ensureWebviewsHavePages": True,"appium:nativeWebScreenshot": True,"appium:newCommandTimeout": 3600,"appium:connectHardwareKeyboard": True
})driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", options=options)el1 = driver.find_element(by=AppiumBy.ID, value="com.huawei.calculator:id/digit_8")
el1.click()
el2 = driver.find_element(by=AppiumBy.ACCESSIBILITY_ID, value="加")
el2.click()
el3 = driver.find_element(by=AppiumBy.ID, value="com.huawei.calculator:id/digit_2")
el3.click()# 设置延时(例如5秒)
sleep(5)driver.quit()

http://www.lryc.cn/news/538118.html

相关文章:

  • Unity中如何判断URL是否为RTSP或RTMP流
  • 基于角色访问控制的UML 表示02
  • 【函数题】6-10 二分查找
  • 关于conda换镜像源,pip换源
  • DeepSeek与ChatGPT的全面对比
  • Spring AI发布!让Java紧跟AI赛道!
  • 基于CT107D单片机综合训练平台的秒表设计
  • opensuse [Linux] 系统挂在新的机械硬盘
  • 时间序列分析(四)——差分运算、延迟算子、AR(p)模型
  • 【CUDA】Triton
  • Windows环境搭建ES集群
  • langchain学习笔记之消息存储在内存中的实现方法
  • 怎么在智能合约中植入deepseek
  • 驱动开发系列37 - Linux Graphics 2D 绘制流程(二)- 画布创建和窗口关联
  • B. Longest Divisors Interval
  • 前端与后端的对接事宜、注意事项
  • 【第13章:自监督学习与少样本学习—13.2 少样本学习(FSL)与元学习(Meta-Learning)的基础理论与应用案例】
  • 函数防抖和节流
  • linux--关于linux文件IO(2) open、read、lseek、stat
  • 利用xtquant高效获取财务数据:量化分析的重要补充
  • Unity UI个人总结
  • Javascript的数据类型
  • Day3 25/2/16 SUN
  • 欧洲分组加密算法之Kasumi
  • vue使用v-chart的实践心得
  • Endnote使用笔记——持续更新
  • Tetragon:一款基于eBPF的运行时环境安全监控工具
  • CAS单点登录(第7版)23.Webflow 管理
  • word文档中标题的自动编号问题
  • kkFileView二开之pdf转图片接口