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

使用【Python+Appium】实现自动化测试

一、环境准备

1.脚本语言:Python3.x    IDE:安装Pycharm

2.安装Java JDK 、Android SDK

3.adb环境,path添加E:\Software\Android_SDK\platform-tools

4.安装Appium for windows,官网地址 Redirecting

 点击下载按钮会到GitHub的下载页面,选择对应平台下载

 安装完成后,启动Appium,host和port默认的即可,然后设置Android SDk和Java JDK   

 然后点下边那个保存并重启的按钮,然后点第一个Start Server按钮,将会看到

 二、真机测试

1.连接手机

打开开发者模式,USB线连接手机和电脑,并且在开发者选项当中,开启USB调试

 测试是否连接成功,可执行命令adb devices

  出现上图就证明手机和电脑连接成功。。。

 2.点击Start Inspector Session,

 按如下配置Desired Capabilities

platformName :声明是ios还是Android系统

 platformVersion : Android内核版本号,可通过命令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”

 3.运行Start Session,选择元素

 右侧 Selected Element 区域有三个按钮

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

4.录制脚本

 录制生成的python代码如下:

# This sample code uses the Appium python client
# pip install Appium-Python-Client
# Then you can paste this into a file and simply run with Pythonfrom appium import webdrivercaps = {}
caps["platformName"] = "Android"
caps["platformVersion"] = "9.0.0"
caps["deviceName"] = "Mi_Note_3"
caps["appPackage"] = "com.antfortune.wealth"
caps["appActivity"] = "com.alipay.mobile.quinox.LauncherActivity"
caps["resetKeyboard"] = True
caps["unicodeKeyboard"] = Truedriver = webdriver.Remote("http://localhost:4723/wd/hub", caps)el1 = driver.find_element_by_id("com.antfortune.wealth.login:id/login_main_button")
el1.click()
el2 = driver.find_element_by_id("com.alipay.mobile.accountauthbiz:id/auth_login_btn")
el2.click()driver.quit()

5.在pycharm中建立项目将代码粘入,在运行之前,还需通过pip命令安装pip install Appium-Python-Client依赖包

 最后,记一个我在这些过程中遇到的问题(现已解决)

 在Appium-desktop中运行Start Session时,出现

 解决方法:在开发者模式下,打开usb调试功能和use模拟点击,两个都要打开,此时再重新运行,即可解决

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

相关文章:

  • HBase学习笔记(1)—— 知识点总结
  • C#,Python实践,用CodeFormer实现人脸重建(Face Restoration),模糊清晰、划痕修复及黑白上色
  • uniapp-实现微信授权登录
  • 网络安全(黑客)—小白自学
  • Pytorch 里面torch.no_grad 和model.eval(), model.train() 的作用
  • Docker本地部署Drupal并实现公网访问
  • 【课程笔记 - 目录】2023 微信公众号开发教程全开源
  • Docker安装、卸载,以及各种操作
  • MySQL性能分析工具的使用
  • python自动化测试selenium核心技术3种等待方式详解
  • OC-编译错误
  • 前端小技巧: 防抖和节流的区别
  • 根据json生成Java类
  • 关于navigator.userAgent判断苹果手机的问题和踩坑
  • Java中的反射机制
  • 【译】JS基础算法脚本:字符串结尾
  • AzureCon上微软宣布了哪些容器相关的重磅消息
  • Cookie 在前端中的实践
  • Hexo+码云+git快速搭建免费的静态Blog
  • HTTP请求重发
  • idea + plantuml 画流程图
  • Java多线程(4):使用线程池执行定时任务
  • uva 10370 Above Average
  • vue 配置sass、scss全局变量
  • Vue全家桶实现一个Web App
  • 大整数乘法-表格法
  • 记一次删除Git记录中的大文件的过程
  • 聊一聊前端的监控
  • 试着探索高并发下的系统架构面貌
  • 问:在指定的JSON数据中(最外层是数组)根据指定条件拿到匹配到的结果
  • 小程序上传图片到七牛云(支持多张上传,预览,删除)
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • hi-nginx-1.3.4编译安装
  • 回归生活:清理微信公众号
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • ​马来语翻译中文去哪比较好?
  • ###STL(标准模板库)
  • #HarmonyOS:基础语法
  • #ubuntu# #git# repository git config --global --add safe.directory
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • (超详细)2-YOLOV5改进-添加SimAM注意力机制
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (七)理解angular中的module和injector,即依赖注入
  • (十三)Java springcloud B2B2C o2o多用户商城 springcloud架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)...
  • (详细版)Vary: Scaling up the Vision Vocabulary for Large Vision-Language Models
  • (转载)OpenStack Hacker养成指南
  • ***linux下安装xampp,XAMPP目录结构(阿里云安装xampp)
  • .NET Project Open Day(2011.11.13)
  • .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter
  • .net 提取注释生成API文档 帮助文档
  • .NET中使用Redis (二)
  • .Net转前端开发-启航篇,如何定制博客园主题
  • @Autowired和@Resource的区别
  • @staticmethod和@classmethod的作用与区别