APP自动化测试-入门示例

入门示例

通过上一篇博客APP自动化测试介绍-CSDN博客的学习,相信大家对APP自动化测试已经有了一定的了解,下面演示一下入门示例

1. 配置Appium

1.1. 点击Appium图标,打开服务器:

1.2. 点击Edit Configurations,进入配置页面,配置ANDROID_HOMEJAVA_HOME

1.2.1. 如何查看ANDROID_HOME
      • 打开Android Studio进入任一项目页面后,进入设置页
      • 点击SDK Manager - Android SDK:
      • 复制图中Android SDK Location 填入即可
1.2.2. 如何查看JAVA_HOME
      • Windows 系统:
        • 在控制面板中打开「系统」,然后点击「高级系统设置」。
        • 在「系统属性」对话框中,点击「环境变量」按钮。
        • 在「环境变量」对话框中,找到「系统变量」下的「JAVA_HOME」变量,并查看其值。
      • Mac 电脑,可以使用终端命令来查看Java Home的位置:
        • 打开终端应用程序,然后执行以下命令:/usr/libexec/java_home
        • 该命令会返回Java Home的路径,示例如下:

1.3. 配置好ANDROID_HOMEJAVA_HOME后:

1.3.1. 如果是本地调试,在Host中输入127.0.0.1;Port默认4723,点击Start Server v.1.x.xx,启动Appium

2. 配置手机/模拟器

2.1. 连接手机/模拟器

  1. 真机需要数据线与电脑进行连接
  2. 模拟器使用adb connect xxx 命令 连接设备

2.2. 打开手机/模拟器,打开开发者模式

  1. 设置-关于手机(关于平板电脑)-版本号-连续点击五次开启开发者模式
  2. 允许usb调试:开发者选项--usb调试开关打开

3. 配置Appium inspector

3.1. 打开Appium inspector,输入正确的Host、Port、Path

3.2. 填写初始化APP的必填参数

3.2.1. 方式一:左侧单个输入

3.2.2. 方式二:右侧直接json输入

3.2.3. 点击Start Session

3.2.4. 连接成功

入门代码示例

1. 示例一

import timefrom appium import webdriver# 定义desired_caps 字典,初始化app的配置信息
desired_caps = {"platformName": "android",  # 表示的是android 或者IOS系统"platformVersion": "10",  # 表示的是设备系统的版本号"deviceName": "DWV6R19A10002101",  # 表示的是设备的ID名称(如果只有一个设备可以用****来替代)"appPackage": "com.android.settings",  # 表示的是app的包名"appActivity": ".HWSettings"  # 表示的是app的界面名
}# 创建 Appium 驱动对象
driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps)# 等待 APP 初始化完成
driver.implicitly_wait(10)# 执行具体的操作,例如点击、输入等
time.sleep(5)# 关闭 APP
driver.quit()

在上面的示例中,首先定义了desired_caps字典,其中包括了平台名称、设备版本号、设备名称、APP 包名和主 Activity 等信息。然后,通过Remote方法创建了Appium驱动对象,并使用implicitly_wait方法等待 APP 初始化完成。

其后,可以根据具体的需求在...部分添加各种操作,例如点击按钮、输入文本、滑动屏幕等。

最后,使用driver.quit()方法关闭Appium会话。

2. 异常报错处理

注意如果是使用pip命令安装appium-python-client、selenium时默认安装了最新版本,最新版本是不兼容的,这是他们的版本兼容性列表:

报错信息:AttributeError: 'NoneType' object has no attribute 'to_capabilities'版本不兼容

2.1. 解决办法:

2.1.1. 方式一:回退版本
  • 打开pycharm中
    • 在Pycherm打开settings
    • 选择"project- interpreter"
    • 双击appium-python-client进入,选择Specify version,可以勾选不同版本
    • 点击Install package
    • selenium安装时,与上述方法一致
2.1.2. 方式二:更改代码(不兼容是因为新版本更改了部分属性内容,可自行百度)

代码如下:

3. 示例二

import time
from appium import webdriver
from appium.options.android import UiAutomator2Options# 定义desired_caps 字典,初始化app的配置信息
desired_caps = {"platformName": "android",  # 表示的是android 或者IOS系统"platformVersion": "10",  # 表示的是设备系统的版本号"deviceName": "DWV6R19A10002101",  # 表示的是设备的ID名称(如果只有一个设备可以用****来替代)"appPackage": "com.android.settings",  # 表示的是app的包名"appActivity": ".HWSettings"  # 表示的是app的界面名
}# 创建 Appium 驱动对象
options = UiAutomator2Options().load_capabilities(desired_caps)
driver = webdriver.Remote("http://localhost:4723/wd/hub", options=options)# 等待 APP 初始化完成
driver.implicitly_wait(10)# 执行具体的操作,例如点击、输入等
time.sleep(5)   # 加了time.sleep(5)可能会报错,大家注意调试# 关闭 APP
driver.quit()

上述代码通过引入UiAutomator2Options,完美解决问题,我目前使用是appium-python-client:3.2.1、selenium:4.18.1,以上代码可以正常运行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/713589.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【LeetCode】【滑动窗口长度不固定】978 最长湍流子数组

1794.【软件认证】最长的指定瑕疵度的元音子串 这个例题,是滑动窗口中长度不定求最大的题目,在看题之前可以先看一下【leetcode每日一题】【滑动窗口长度不固定】案例。 题目描述 定义:开头和结尾都是元音字母(aeiouAEIOU&…

Python脚本之打印乘法口诀表

Python脚本之打印乘法口诀表 for i in range(1, 10):for j in range(1, i 1):print(f"{j} * {i} {i * j}", end"\t")print()

GIT基本的命令

文章目录 04.GIT本地操作-初始化工作区内容小结 05.GIT本地操作-add与commit目标内容小结 06.GIT本地操作-差异比较目标内容小结 07.GIT本地操作-版本回退目标内容小结 08.GIT本地操作-修改撤消目标内容小结 09.GIT本地操作-总结 04.GIT本地操作-初始化工作区 内容 初始化工作…

Java对象大小计算

概述 在实际应用中,尤其是在进行JVM调优时,理解并正确估计对象大小是非常重要的,因为这直接影响到内存分配、垃圾回收效率以及应用程序的整体性能。 对象的组成 在Java中,计算一个对象的大小是为了了解它在内存中占用的确切空间…

【c++基础】挑战赛第二题——放大的X

说明 请你编程画一个放大的’X’&#xff08;大写字母&#xff09;。 如3*3的’X’应如下所示&#xff1a; x xxx x 5*5的’X’如下所示&#xff1a; X XX XXX X X X 输入数据 有一个正奇数n&#xff08;3 < n < 79&#xff09;&#xff0c;表示放大的规格。 …

m位数问题(c++题解)

题目描述 考官只给两个整数n和m&#xff08;1 < n < 8&#xff0c;1< m <5&#xff09;&#xff0c;要求选手从1,2,…,n中取出m个数字&#xff0c;组成一个m位整数&#xff0c;统计所有的m位整数中一共有多少个素数。 如n3,m2时&#xff0c;符合条件的整数有&…

(C语言) time库-日期和时间工具

文章目录 ⏰介绍⏰常量⏱️CLOCKS_PER_SEC ⏰类型⏱️tm⏱️time_t⏱️clock_t⏱️timespec (C11) ⏰函数-时间操作⏲️time&#x1f3f7;️返回纪元开始经过的当前系统日历时间⏲️clock&#x1f3f7;️返回未加工的程序启动时开始经过的处理器时间⏲️difftime&#x1f3f7;️…

(delphi11最新学习资料) Object Pascal 学习笔记---第6章第3节(字符串连接)

6.3.3 字符串连接 ​ 我已经提到过&#xff0c;与其他语言不同&#xff0c;Object Pascal 完全支持直接字符串连接&#xff0c;这实际上是一个相当快的操作。在本章中&#xff0c;我将向您展示一些字符串连接代码和一些速度测试。稍后&#xff0c;在第 18 章中&#xff0c;我将…

第十五天-爬虫项目实战

目录 1.介绍 2.代码 1.main.py 2.PageSider.py 3.DetailSpider.py 4.DataParse.py 5.Constant.py 6.HanderRequest.py 1.介绍 1. 使用多线程爬取网站 2.爬取数据后保存至excel 3.爬取网站(仅做测试)网创类项目爬取&#xff1a;https://www.maomp.com/ 4..实现效果 …

python66-Python的循环之常用工具函数

使用zip()函数可以把两个列表“压缩”成一个zip对象(可迭代对象),这样就可以使用一个循环并行遍历两个列表。为了测试 zip()函数的功能,我们可以先在交互式解释器中“试验”一下该函数的功能。 # !/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2024/01# @Author : …

元数据优化:提升您的网站在搜索引擎中的表现

前言 在之前的文章中&#xff0c;我们探讨了如何通过超链接来提高用户在网站的使用体验。本篇将聚焦于元数据的优化&#xff0c;揭示它如何成为提升网站曝光率和点击率的秘密武器。 一、介绍 元数据&#xff0c;或称之为数据的数据&#xff0c;在网页开发中占据着不可忽视的角…

IPD MM流程之业务策略工具:安索夫矩阵

IPD市场管理流程&#xff0c;华为内部称为“MM流程”&#xff08;Market Management&#xff0c;MM&#xff09;。华为市场管理是通过对市场和细分市场的分析&#xff0c;制定细分市场的策略&#xff0c;形成商业计划&#xff0c;把商业计划落实在日常工作当中。MM流程其中一个…

git根据文件改动将文件自动添加到缓冲区

你需要修改以下脚本中的 use_cca: false 部分 #!/bin/bash# 获取所有已修改但未暂存的文件 files$(git diff --name-only)for file in $files; do# 检查文件中是否存在"use_cca: false"if grep -q "use_cca: false" "$file"; thenecho "Ad…

3.1线程作业

1.要求定义一个全局变量char buf"1234567"&#xff0c;创建两个线程&#xff0c;不考虑退出条件。 a.A线程循环打印buf字符串&#xff0c; b.B线程循环倒置buf字符串&#xff0c;即buf中本来存储1234567&#xff0c;倒置后buf中存储7654321.B线程中不打印!! c.倒置…

qt5-入门-使用拖动方式创建Dialog

参考&#xff1a; C GUI Programming with Qt 4, Second Edition 本地环境&#xff1a; win10专业版&#xff0c;64位&#xff0c;Qt5.12 目录 实现效果基本流程逐步实操1&#xff09;创建和初始化子部件2&#xff09;把子部件放进布局中3&#xff09;设置tab顺序4&#xff09…

jstat命令查看jvm的GC信息

文章目录 前言jstat命令查看jvm的GC信息1. 概述2. 应用堆内存水位阀值大小怎么确定3. 使用 jps 命令查看 Java 进程的进程号&#xff08;PID&#xff09;![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/5097401443314e9d808a83b694dbc6e5.png)4. jstat用法5. 类加载…

UE4 Niagara 关卡3.1官方案例解析二

自己尝试做做&#xff0c;打乱顺序 1、新建空的niagara system&#xff0c;添加空的发射器。更换渲染器为网格体渲染器并添加网格体。 2、发射器更新里面添加Spawn Rate&#xff0c;发射个粒子看看 效果图&#xff1a; 3、采样静态网格体&#xff0c;网格体粒子出生于静态网格…

【排序算法】基数排序

一&#xff1a;基本概念 1.1 基数排序(桶排序)介绍 基数排序&#xff08;radix sort&#xff09;属于“分配式排序”&#xff08;distribution sort&#xff09;&#xff0c;又称“桶子法”&#xff08;bucket sort&#xff09;或bin sort&#xff0c;顾名思义&#xff0c;它是…

【图说】电脑发展史

免责声明:文中有一些图片来源自网络,如有版权请通知我删除,谢谢! “结绳记事”是计算的开端 如果说“结绳记事”仅是计数,那么“算筹”就是真正的计算工具 算盘也是我们老祖宗的杰出发明,最擅长“加减乘除”,包括但不限于乘方、开方、对数等。还能进行开发智力的“珠心算…

鼠标失灵怎么办?电脑出现鼠标失灵的详细处理方法介绍

无论是笔记本电脑还是台式机电脑&#xff0c;鼠标是必不可少的外设之一&#xff0c;而我们在使用电脑的过程中&#xff0c;经常回遇到鼠标突然失灵了&#xff0c;不听使唤&#xff0c;控制不了&#xff0c;接下小编来与大家一起分享&#xff0c;遇到这种情况我们该怎么办 有时…