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

3分钟教你用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按钮,将会看到

同时,我也准备了一份软件测试视频教程(含接口、自动化、性能等),需要的可以直接在下方观看,或者直接关注VX公众号:互联网杂货铺,免费领取

软件测试视频教程观看处:

华测教育软件测试进阶全套视频教程(2023全网最新版,软件测试进阶自学必备)

二、真机测试

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模拟点击,两个都要打开,此时再重新运行,即可解决

三、写在最后

PS:这里分享一套软件测试的自学教程合集。对于在测试行业发展的小伙伴们来说应该会很有帮助。除了基础入门的资源,博主也收集不少进阶自动化的资源,从理论到实战,知行合一才能真正的掌握。全套内容已经打包到网盘,内容总量接近500个G。如需要软件测试学习资料,关注公众号(互联网杂货铺),后台回复1,整理不易,给个关注点个赞吧,谢谢各位大佬!

☑ 240集-零基础到精通全套视频课程
☑ [课件+源码]-完整配套的教程
☑ 18套-测试实战项目源码
☑ 37套-测试工具软件包
☑ 268道-真实面试题
☑ 200个模板-面试简历模板、测试方案模板、软件测试报告模板、测试分析模版、测试计划模板、性能测试报告、性能测试报告、性能测试脚本用例模板(信息完整)

相关文章:

3分钟教你用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…...

qt的一些自绘控件

https://download.csdn.net/download/venice0708/88469835...

类图表示法

设计模式,用设计图表示的话,主要用到类图。常见UML类图如下: 1、类图:矩形框,代表一个类(Class)。类图分为三层,第一层显示类的名称,如果是抽象类,则用斜体显…...

大模型训练框架

一文搞定分布式训练:dataparallel、distirbuted、deepspeed、accelerate、transformers、horovod - 知乎代码地址:taishan1994/pytorch-distributed-NLP: pytorch分布式训练 (github.com)pytorch-distributed-NLPpytorch单机多卡分布式训练-中文文本分类…...

好用的Visio绘图文件工具 VSD Viewer最新 for mac

VSD Viewer是一款可以查看Microsoft Visio绘图文件的工具,适用于Windows和macOS操作系统。它具有以下优点: 直观易用:VSD Viewer的用户界面非常简单直观,易于使用。支持多种文件格式:VSD Viewer支持多种Visio文件格式…...

三代自动驾驶系统及主流科技公司自动驾驶技术方案简介

截止目前,按技术特点,自动驾驶技术大致经历了三代发展:第一代自动驾驶技术以后融合感知技术,高精度地图,基于惯导、GPS定位系统,预测模块,基于优化、搜索的规控等组成。第一代比较成熟的自动驾驶…...

mac安装nodejs,跑vue程序

1. 下载node.js for mac,地址:Node.js。一路安装就可以了,无需修改。 2. mac终端,查看node和npm的版本。 3. 配置环境变量, vim .bash_profile增加PATH$PATH:/usr/local/bin/ 4. 但是毕竟npm安装一些东西还是太慢了所…...

VC++程序崩溃时,使用Visual Studio静态分析dump文件

1、通过Visual Studio直接把Dump文件打开 2、点击【仅限本机进行调试】,启动Dump 3.1、本机调试启动后,如果程序运行模块和pdb文件在同一个目录的,直接定位到异常代码行 3.2、如果显示找不到pdb文件,则需要通过【新建路径】设置…...

【哈希数组】【字符串 转化为 字符数组】Leetcode 383 赎金信

【哈希表】【字符串 转化为 字符数组】Leetcode 383 赎金信 解法1 【哈希数组】 String 转化为 字符数组char[ ] .toCharArray ⭐️String 转化为 字符数组char[ ] .toCharArray 解法1 【哈希数组】 String 转化为 字符数组char[ ] .toCharArray 时间复杂度O(N) 这个解决方案…...

【C++】c++引用和小细节

文章目录 一、引用的特性:引用的实质引用权限使用场景引用和指针的区别 c引用不是定义了新的对象,而是对一个已有的对象起了一个别名,如鲁迅和周树人的关系,鲁迅是周树人的笔名,两者是一个东西,只是名字不同…...

nginx负载均衡(动静分离)

nginx负载均衡(动静分离) 文章目录 nginx负载均衡(动静分离)工作原理:环境说明:部署nginx负载均衡步骤:在负载均衡(NGINX)主机上做配置:测试:在浏…...

vue自定义全局指令v-emoji限制input输入表情和特殊字符

问题: 后台不提供富文本存储,所以emoji表情入库会报错需求要求前端在输入的时候过滤掉表情符号全局的input 和富文本textarea输入框都需要过滤emoji表情 分析: 1.每一个input写事件写正则校验代码量实在太多了还很麻烦;所以想用…...

Excel 5s内导入20w条简单数据(ExecutorType.BATCH)Mybatis批处理的应用

文章目录 Excel 5s内导入20w条数据1. 生成20w条数据1.1 使用Excel 宏生成20w条数据1.2 生成成功 2. ExecutorType:批量操作执行器类型2.1 ExecutorType.SIMPLE2.2 ExecutorType.BATCH2.3 ExecutorType.REUSE 3. 20w条数据直接插入数据库3.1 使用ExecutorType.SIMPLE…...

【期刊】IEEE系列指定期刊模版下载(LaTeX或者Word)全网最细教程

IEEE旗下有很多期刊,例如: IEEE Transactions on Pattern Analysis and Machine Intelligence IEEE Transactions on Cybernetics IEEE Transactions on Neural Networks and Learning Systems IEEE Transactions on Industrial Informatics IEEE Tra…...

损失函数和评估函数

损失函数和目标函数定义 损失函数是用于衡量模型在训练过程中预测结果与实际结果之间的差异的函数。它通过计算模型的预测值与实际值之间的距离或差异来 quantitatively 表示模型的性能好坏。损失函数通常被用作优化算法(如梯度下降)的目标函数,通过最小化损失函数来调整模…...

第四章 文件管理 四、文件的物理结构(文件分配方式)

目录 一、文件块,磁盘块 二、连续分配 1、定义: 2、计算方式: 3、注意: 4、优点: 5、缺点: 6、总结 三、链接分配----隐式链接 1、定义: 2、如何实现逻辑块号转物理块号 3、优点&…...

解析外贸开发信的结构?营销邮件书写技巧?

做外贸的开发信结构是怎样的?写外贸邮件的注意事项? 外贸开发信是国际贸易中至关重要的一环,它不仅是与潜在客户建立联系的第一步,也是一种有效的市场推广工具。蜂邮EDM将深入解析外贸开发信的结构,帮助您更好地理解如…...

Linux的命令基本格式

因为对服务器来讲,图形界面会占用更多的系统资源,而且会安装更多的服务、开放更多的端口,这对服务器的稳定性和安全性都有负面影响。其实,服务器是一个连显示器都没有的家伙,要图形界面干十么?说到这里&…...

数据库Redis(二):基本数据类型

Redis中采用Key-Value键值对的形式将数据存储在数据库中&#xff0c;首先介绍Redis中针对键Key的操作命名。 Redis键Key相关命令 # 查看当前库所有key keys * # 判断某个key是否存在 exists <key> # 查看你的key是什么类型 type <key> # 删除指定的key数据 …...

mysql第四次作业

目录 数据表介绍 --1.学生表Student(SId,Sname,Sage,Ssex)--SId 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别 --2.课程表Course(CId,Cname,TId)--CId 课程编号,Cname 课程名称,TId 教师编号 --3.教师表Teacher(TId,Tname)--TId 教师编号,Tname 教师姓名 --4.成绩…...

在软件开发中正确使用MySQL日期时间类型的深度解析

在日常软件开发场景中&#xff0c;时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志&#xff0c;到供应链系统的物流节点时间戳&#xff0c;时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库&#xff0c;其日期时间类型的…...

JavaSec-RCE

简介 RCE(Remote Code Execution)&#xff0c;可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景&#xff1a;Groovy代码注入 Groovy是一种基于JVM的动态语言&#xff0c;语法简洁&#xff0c;支持闭包、动态类型和Java互操作性&#xff0c…...

云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?

大家好&#xff0c;欢迎来到《云原生核心技术》系列的第七篇&#xff01; 在上一篇&#xff0c;我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在&#xff0c;我们就像一个拥有了一块崭新数字土地的农场主&#xff0c;是时…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》

在注意力分散、内容高度同质化的时代&#xff0c;情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现&#xff0c;消费者对内容的“有感”程度&#xff0c;正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中&#xff0…...

HBuilderX安装(uni-app和小程序开发)

下载HBuilderX 访问官方网站&#xff1a;https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本&#xff1a; Windows版&#xff08;推荐下载标准版&#xff09; Windows系统安装步骤 运行安装程序&#xff1a; 双击下载的.exe安装文件 如果出现安全提示&…...

Rust 异步编程

Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...

让AI看见世界:MCP协议与服务器的工作原理

让AI看见世界&#xff1a;MCP协议与服务器的工作原理 MCP&#xff08;Model Context Protocol&#xff09;是一种创新的通信协议&#xff0c;旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天&#xff0c;MCP正成为连接AI与现实世界的重要桥梁。…...

Map相关知识

数据结构 二叉树 二叉树&#xff0c;顾名思义&#xff0c;每个节点最多有两个“叉”&#xff0c;也就是两个子节点&#xff0c;分别是左子 节点和右子节点。不过&#xff0c;二叉树并不要求每个节点都有两个子节点&#xff0c;有的节点只 有左子节点&#xff0c;有的节点只有…...

以光量子为例,详解量子获取方式

光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学&#xff08;silicon photonics&#xff09;的光波导&#xff08;optical waveguide&#xff09;芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中&#xff0c;光既是波又是粒子。光子本…...

在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案

这个问题我看其他博主也写了&#xff0c;要么要会员、要么写的乱七八糟。这里我整理一下&#xff0c;把问题说清楚并且给出代码&#xff0c;拿去用就行&#xff0c;照着葫芦画瓢。 问题 在继承QWebEngineView后&#xff0c;重写mousePressEvent或event函数无法捕获鼠标按下事…...