当前位置: 首页 > 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 sleep

from 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 PointerInput

options = 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()

相关文章:

  • Netty的线程模型详解
  • ollama+langchain+deepseek本机跑通大模型
  • spring 学习(spring-Dl补充(注入不同类型的数据))
  • 搭建本地模型,实现聊天机器人
  • 二级C语言题解:函数指针的操作、单链表偶数结点值累加、判断回文
  • 2025年——【寒假】自学黑客计划(网络安全)
  • 达梦:TPCC 压测
  • 解决Did not find dashscope_api_key问题——jupyter设置环境变量
  • 初学总结SpringBoot项目在mac上环境搭建和运行
  • 教育小程序+AI出题:如何通过自然语言处理技术提升题目质量
  • [npm install 报错] Verion 9 of Highlight.js has reached EOL
  • ESP32 WIFI
  • 封装一个sqlite3动态库
  • C#两个集合多属性组合关联得到新的组合
  • 机器学习算法 - 随机森林之决策树初探(1)
  • 哪些专业跟FPGA有关?
  • 计算机等级考试——计算机三级——网络技术部分
  • 多态、虚函数、动态绑定、虚指针加虚表是同一件事情。
  • 【Oracle】层次查询步骤,理解 where 条件执行顺序
  • DeepSeek帮助解决Oracle死锁问题
  • 中国以优化营商环境为支点,为全球企业提供可预期市场环境
  • 巴基斯坦信德省卡拉奇发生爆炸
  • 百济首次实现季度营业利润扭亏,泽布替尼销售额近57亿元
  • 金融监管总局:做好2025年小微企业金融服务工作
  • 首家股份行旗下AIC来了,兴银金融资产投资有限公司获批筹建
  • 长安汽车辟谣作为二级企业并入东风集团:将追究相关方责任