03-appium环境配置和启动参数设置

news2024/11/26 17:31:31

 参考文章:https://blog.csdn.net/lovedingd/article/details/110949993

一、appium介绍

        Appium是一个开源、跨平台的自动化测试框架,支持Android、IOS等平台,同时也支持多语言,比如:Java、Python等。

        Appiumu通过扩展Selenium的Webdriver JSON协议,使得IOS和Android的自动化测试代码可以共用,通过调⽤UIAutomator的命令,实现Android应用的自动化测试。

二、appium工作原理

        Appium的核心是一个web服务器,提供了一套REST接口。它接收客户端(就是我们编写的测试代码)的连接,监听客户端发送的命令,然后在移动设备上执行这些命令,最后将执行结果放在http响应中返回给客户端。

        特点:支持多语言编写测试代码;可以将appium服务端放在不同的机器上。

三、appium环境搭建

        搭建appium自动化测试环境,主要配置两个东西:

  • appium的客户端,选择对应平台下载,傻瓜式安装即可。
  • appium-python库:通过pip install appium-python-client命令进行安装即可。

        注:启动appium客户端时,必须右键选择 “以管理员身份运行”,否则在运行过程中会遇到权限问题。

四、appium启动参数设置

from appium import webdriver

desired_cap = {}
# 必须参数,指定测试设备的平台属性,不区分大小写。
desired_cap['platformName'] = 'Android'
# 必须参数,指定测试设备的安卓版本号(设置->关于平板电脑本机->Android版本)
desired_cap['platformVersion'] = '6.0.1'
# 可以写任意的值,但不能为空。
desired_cap['deviceName'] = '127.0.0.1:7555'
# 必须参数,指定被测软件的包名
desired_cap['appPackage'] = 'com.android.settings'
# 必须参数,指定要打开app的哪个页面
desired_cap['appActivity'] = '.Settings'
# 非必须参数,但一般需要指定
desired_cap['automationName']='Uiautomator2'
# 设置app应用的重置策略。用于指定每次测试完毕之后,对测试环境的清理程度。
#    默认:测试后,停止app应用、清除app应用数据,不卸载apk。
#    fullReset:测试后,停止app应用、清除app应用数据、卸载apk。
#    noReset:测试后,不停止app应用、不清除app应用数据、不卸载apk。
desired_cap['noReset'] = True
# 设置命令执行的超时时间
desired_cap['newCommandTimeout'] = 6000
# 用于设置中文输入
desired_cap['unicodeKeyboard'] = True
desired_cap['resetKeyboard'] = True

driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_cap)

        执行上述程序后,报错:AttributeError: 'NoneType' object has no attribute 'to_capabilities'。

1)报错原因分析

        由于python的appium包是基于selenium的, 而当我们安装了最新版的selenium和最新版的appium, 就会产生版本冲突问题, 导致:AttributeError: 'NoneType' object has no attribute 'to_capabilities' 异常发生。

2)解决办法

        首先,卸载selenium和appium:pip uninstall seleniumpip uninstall appium-python-client

        然后,安装低版本的appium:pip install appium-python-client==2.0。这时pip会将对应版本的selenium一起下载,所以就不用再另外安装selenium了。

3)程序执行结果

        重新执行上述程序后,会在模拟器中安装Appium Settings(用于设置网络状态),并打开设置主页面。

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

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

相关文章

【内存管理之C语言数组】

1.栈空间上的C数组 糟糕的可用性,但是你将在遗留代码中见到它们 相同类型的对象的内存块 大小必须是常量表达式 第一个元素索引为0 2.指针和C数组 更奇怪的是:数组标识符退化为指向第一个元素的指针 3.访问数组 4.堆空间上的C数组 相同类型的对象的内…

transformer模型首次体验代码

前言 首先是安装python,更新pip源到清华源。安装transformer pip install transformer安装jupyter lab,也简单一行 pip install jupyterlab现在不想用anaconda了,因为国内没有源了,国外的又慢。直接用pip吧。 然后开始体验之旅…

Go TOKEN机制与跨域处理方式

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

深入浅出 Qt 中 QListView 的设计思想,并掌握大规模、高性能列表的实现方法

在大规模列表控件的显示需求中,必须解决2个问题才能获得较好的性能: 第一就是数据存在哪里, 避免出现数据的副本。第二就是如何展示Item,如何复用或避免创建大量的Item控件。 在QListView体系里,QAbstractListModel解…

大数据实训项目(小麦种子)-02、实训项目整体功能介绍与演示

文章目录 前言界面及功能描述实现功能描述技术选型界面展示首页界面功能1:HDFS,选择文件上传文件详细步骤 功能2:MapReduce预处理数据功能3:Hbase存储小麦种子数据并查询前10条记录功能4:Hive分析原始csv文件数据并ech…

Linux C编译器从零开发二

自定义分词器 test.c #include <ctype.h> #include <stdarg.h> #include <stdbool.h> #include <stdio.h> #include <stdlib.h> #include <string.h>typedef enum {TK_PUNCT, // PunctuatorsTK_NUM, // Numeric literalsTK_EOF, // …

基于flask的网站如何使用https加密通信-问题记录

文章目录 项目场景&#xff1a;问题1问题描述原因分析解决步骤解决方案 问题2问题描述原因分析解决方案 参考文章 项目场景&#xff1a; 项目场景&#xff1a;基于flask的网站使用https加密通信一文中遇到的问题记录 问题1 问题描述 使用下面的命令生成自签名的SSL/TLS证书和…

BUUCTF---[MRCTF2020]你能看懂音符吗

1、下载附件&#xff0c;是一个压缩包&#xff0c;解压&#xff0c;发现解压失败 2、用winhex分析文件&#xff0c;发现文件头不对 3、将文件头改为&#xff1a;52617221&#xff0c;保存 4、解压得到word 5、在文档发现下面内容 6、根据题目的描述&#xff0c;将音乐字符解码…

Docker部署MaxKB 知识库(提高问答命中率)

前言 上一篇文章简单的介绍了下MaxKB&#xff0c;这一篇文章就讲如何部署MaxKB。 MaxKB实现逻辑也比较简单&#xff0c;如下图。 安装 修改Docker镜像源 由于不可抗力&#xff0c;部分源已经无法使用&#xff0c;需要修改以下的源地址来拉取镜像。如果是linux&#xff0c;…

深度学习(PyTorch)批注理解,建议边学可以边看这个笔记

前言 动手学习深度学习&#xff0c;内容丰富&#xff0c;但是对于初学者有很多晦涩难懂的地方&#xff0c;我将日常更新这篇文章以截图的形式&#xff0c;每天高强度学习四五个小时&#xff0c;精力缺乏&#xff0c;我认为&#xff0c;如果想学习这个深度学习&#xff0c;你需…

人工智能GPU互联技术分析,芯片巨头UALink向英伟达NVLink开战

芯片巨头组团&#xff0c;向英伟达NVLink开战 八大科技巨头——AMD、博通、思科、Google、惠普企业、英特尔、Meta及微软——联合推出UALink&#xff08;Ultra Accelerator Link&#xff09;技术&#xff0c;为人工智能数据中心网络设定全新互联标准。此举旨在打破Nvidia的市场…

LoginGUI.java

LoginGUI.java 完成效果如下图&#xff1a; CODE Summary: This code sets up a login GUI using Swing. It defines a LoginGUI class extending JFrame. The constructor initializes the GUI components and sets up event listeners. The event_login method handles…

TCP三次握手的过程

一、什么是TCP TCP是面向连接的、可靠的、基于字节流的传输层通信协议。 二、TCP的头部格式 序列号:在建立连接时由计算机生成的随机数作为其初始值&#xff0c;通过SYN包传给接收端主机&#xff0c;每发送一次数据&#xff0c;就「累加」一次该「数据字节数」的大小。用来解…

分数计算 初级题目

今天继续更题。今天的题目是《第五单元 分数的加减法》初级题目。 定位&#xff1a;题目较为初级&#xff0c;适合预习 参考答案&#xff1a;CACCADACAABACBBCDBCB

shell编程基础(第18篇:更多的文件操作命令介绍)

前言 对于文件来说&#xff0c;除了它的文件内容之外&#xff0c;就是对其文件本身的操作&#xff0c;比如我们想要重命名文件、移动文件、复制文件、已经获取文件所在目录&#xff0c;文件名等操作&#xff0c;今天一起学习更多的文件操作相关的命令 basename 用于获取文件名…

2024年【N2观光车和观光列车司机】考试技巧及N2观光车和观光列车司机模拟考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 N2观光车和观光列车司机考试技巧参考答案及N2观光车和观光列车司机考试试题解析是安全生产模拟考试一点通题库老师及N2观光车和观光列车司机操作证已考过的学员汇总&#xff0c;相对有效帮助N2观光车和观光列车司机模…

第12章.STM32标准库简介

目录 0. 《STM32单片机自学教程》专栏 12.1 CMSIS 标准 12.2 STM32标准库文件结构 12.2.1 主结构 12.2.2 Libraries固件库文件 CMSIS文件夹 1.core_cm3.c&core_cm3.h 2.startup启动文件 3.Stm32f10x.h 4.system_stm32f10x.c&system_stm32f10…

微前端乾坤方案

微前端乾坤方案 了解乾坤 官方文档 介绍 qiankun 是一个基于 single-spa 的微前端实现库&#xff0c;旨在帮助大家能更简单、无痛的构建一个生产可用微前端架构系统。 qiankun 的核心设计理念 &#x1f944; 简单 由于主应用微应用都能做到技术栈无关&#xff0c;qiankun 对…

乐鑫ESP32相关资料整理

乐鑫科技 Espressif 介绍 乐鑫科技 Espressif AIoT 领域软硬件产品的研发与设计&#xff0c;专注于研发高集成、低功耗、性能卓越、安全稳定、高性价比的无线通信 SoC&#xff0c;现已发布 ESP8266、ESP32、ESP32-S、ESP32-C 和 ESP32-H 系列芯片、模组和开发板。 Espressif Sy…

如何训练自己的大型语言模型?

简介 大型语言模型&#xff0c;如OpenAI的GPT-4或Google的PaLM&#xff0c;已经席卷了人工智能领域。然而&#xff0c;大多数公司目前没有能力训练这些模型&#xff0c;并且完全依赖于只有少数几家大型科技公司提供技术支持。 在Replit&#xff0c;我们投入了大量资源来建立从…