iss服务器网站建设/百度指数快刷软件
一、环境配置
1、安装JDK,版本1.8以上
2、安装Python,版本3.x以上,用来解释python
3、安装node.js,版本^14.17.0 || ^16.13.0 || >=18.0.0,用来安装Appimu Server
4、安装npm,版本>=8,用来安装Appimu Server
5、安装Android SDK,用来下载ADB工具
6、安装Appium Inspector,用来在手机/模拟器上定位元素
7、IDE: Pycharm
注意:app自动化测试,元素定位工具有:
(1)appium自带的Appium Inspector工具
(2)python版uiautomator2中的weditor
(3)Android SDK自带UI Automator Viewer,uiautomatorviewer.bat,Android API 高版本已经移除这个了
选择一款即可,代码可以自己在Pycharm中编写,也可以用元素定位工具录制点击生成代码。
配置好环境变量之后可以查询一下各个工具的版本
需要的安装包:
通过百度网盘分享的文件:appium+python
链接:https://pan.baidu.com/s/1YLkx7za-qfojT3o0gx2vIw?pwd=ig8h
提取码:ig8h
二、Appium
Appium分为服务端和客户端,Appium服务端主要负责与手机或模拟器通信,通过建立Session会话相互发送请求,同时Appium服务端还为Appium客户端提供RESTful API。
Appium客户端是开发者用来编写自动化测试脚本的地方,Appium客户端会发送指令给服务端以此来控制手机或模拟器的行为,同时Appium客户端也会接收服务端返回的测试结果,并根据结果决定下一步的操作。
Appium Server没有界面,但是有Appium Inspector,这个工具已经从Appium Desktop中独立出来了,它可以定位UI元素,返回元素xpath,录制自动化流程并返回流程的脚本代码,Appium 1版本是Appium Desktop的这种,Appium 2 直接就使用包管理器安装Appium Server,Appium官方已经不推荐使用Appium Desktop可视化工具了,因为它存在严重的安全隐患,而且官方已经不再迭代新的版本。2022 年 1 月 1 日起,Appium 团队不再维护或支持 Appium 1。所以本次用npm命令安装无界面版本的Appium Server。
在启动Appium服务器之前,需要安装必要的依赖工具,如Android SDK(用于Android应用测试)或Xcode(用于iOS应用测试)。
1、配置Android环境
测试Android应用,需要配置Android SDK。Android 移动应用开发者工具 – Android 开发者 | Android Developers 官网下载Android Studio或者直接下载Android SDK包,然后配置环境变量ANDROID_HOME和PATH,确保系统可以找到Android SDK工具。
以下是Android Studio里面使用SDK Manager安装SDK相关,安装路径不要有空格
命令行工具也可也安装上
配置系统变量
如果上述的步骤全部完成,则Android SDK的环境已经搭建完成了,这里主要是通过配置系统变量,以便于可以直接在命令行操作Android SDK包中的各种工具。
1、打开系统控制面板->高级系统属性->环境变量
2、新增变量ANDROID_HOME=D:\Program Files\sdk
3、更新PATH变量,新增
%ANDROID_HOME%\build-tools\35.0.0
%ANDROID_HOME%\emulator
%ANDROID_HOME%\platform-tools
%ANDROID_HOME%\cmdline-tools\latest\bin\ (如果也安装了命令行工具多加一个这个)
4、若命令行运行某命令报错“不是内部或外部命令”,也是采用这样的方式将其加入到PATH中
5、打开命令行工具,输入命令“adb --version”,可查看adb版本和adb的安装目录
安装appium-inspector,官网:https://github.com/appium/appium-inspector
2、配置iOS环境
如果你要测试iOS应用,需要安装Xcode,并确保安装了Xcode命令行工具。可以通过以下命令安装Xcode命令行工具:
xcode-select --install
3、安装Appium
3.1、安装Appium服务器
使用Node.js的npm工具来安装Appium服务器
npm install -g appium
3.2、安装UiAutomator2
appium driver install uiautomator2
3.2、安装Appium Python客户端库
pip install Appium-Python-Client
如果不用appium自带的appium inspector元素定位工具,也可以用Python版UiAutomator2中的weditor,可以执行以下命令:
pip install weditor
pip install --upgrade uiautomator2
python -m uiautomator2 init
命令行运行weditor --help确认是否安装成功
命令行输入:weditor 会自动打开一个浏览器
3.4、启动Appium服务器
appium
3.5、连接真机或者模拟器测试
我这里用的是真机,模拟器夜神,MuMu或者其他的都可以
打开开发者模式,USB线连接手机和电脑,并且在开发者选项当中,开启USB调试
查询设备信息和安卓版本:adb devices ,adb shell getprop ro.build.version.release
查询当前活跃的程序:adb shell dumpsys activity | findstr "mResume"(需先打开手机应用)
注:Android 8.1之前用adb shell dumpsys activity | findstr “mFocus”
我这里打开QQ音乐,把相关环境信息填写好
capabilities = dict(platformName='Android',# 操作系统platformVersion='10',# Android内核版本号automationName='uiautomator2',deviceName='MQS0219C16009039', #设备名称uiautomator2ServerInstallTimeout=60000,appPackage='com.tencent.qqmusic', #应用程序包的标识符appActivity='.activity.AppStarterActivity', #主要应用活动的名称noReset=True, #确保自动化之后不重置app,保留 session 信息,可以避免重新登录unicodeKeyboard=True, # 使用 unicodeKeyboard 的编码方式来发送字符串resetKeyboard=True, # 将键盘给隐藏起来language='en',locale='US'
)
代码可以用Pycharm写,然后启动xx.py脚本,也可以直接在Appium Inspector中填写信息启动会话
启动后会在手机上安装一个Appium Setting和两个uiautomator2.server的应用
启动会话如果报错:UnknownError: An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: ‘Command ‘D:\AndroidSdk\platform-tools\adb.exe -P 5037 -s MQS0219C16009039 install -r C:\Users\admin\.appium\node_modules\appium-uiautomator2-driver\node_modules\appium-uiautomator2-server\apks\appium-uiautomator2-server-debug-androidTest.apk’ timed out after 20000ms’. Try to increase the 20000ms adb execution timeout represented by ‘uiautomator2ServerInstallTimeout’ capability
可以手动安装这两个包,在报错的目录下去安装
在这里cmd执行安装adb install命令,会让你在手机上安装
adb install .\appium-uiautomator2-server-debug-androidTest.apk
adb install .\appium-uiautomator2-server-v7.1.1.apk
然后就可以了
三、编写脚本
1、导入必要的库
在编写测试脚本之前,需要导入Appium Python客户端库和其他必要的库:
import unittestfrom appium import webdriver
from appium.options.android import UiAutomator2Options
from appium.webdriver.common.appiumby import AppiumBy
2、设置Capabilities
Capabilities是一个字典,用于告诉Appium服务器你希望如何设置测试环境。以下是一个示例,展示了如何设置Android和iOS的Capabilities:
capabilities = dict(platformName='Android',# 操作系统platformVersion='10',# Android内核版本号automationName='uiautomator2',deviceName='MQS0219C16009039', #设备名称uiautomator2ServerInstallTimeout=60000,appPackage='com.tencent.qqmusic', #应用程序包的标识符appActivity='.activity.AppStarterActivity', #主要应用活动的名称noReset="true", #确保自动化之后不重置app,保留 session 信息,可以避免重新登录unicodeKeyboard="True", # 使用 unicodeKeyboard 的编码方式来发送字符串resetKeyboard="True", # 将键盘给隐藏起来language='en',locale='US'
)
3、初始化Appium WebDriver
使用上述Capabilities初始化Appium WebDriver:
driver = webdriver.Remote('http://localhost:4723/wd/hub', capabilities)
4、编写测试步骤
在初始化WebDriver之后,可以开始编写具体的测试步骤。以下示例展示了如何在Android应用中查找元素并进行交互:
# 等待应用加载time.sleep(5)查找元素并进行交互element = driver.find_element(by=AppiumBy.ACCESSIBILITY_ID, value="QQ音乐")
element.click()其他测试步骤...
5、结束测试
在测试结束时,记得关闭WebDriver会话:
driver.quit()
四、执行和调试
在编写完测试脚本之后,可以通过运行Python脚本来执行测试。在运行过程中,可以通过观察Appium服务器日志和测试脚本输出来调试和优化测试。
1、运行测试脚本
python your_test_script.py
2、调试测试脚本
如果测试脚本出现错误,可以通过以下几种方法进行调试:
查看Appium服务器日志:Appium服务器会输出详细的日志信息,可以通过这些日志来分析和定位问题。
使用断点调试:使用Python的调试工具(如PDB)在代码中设置断点,逐步执行代码,观察变量值和执行过程。
增加日志输出:在测试脚本中添加更多的日志输出,帮助你了解代码的执行过程和状态。
说明:
安装必要的环境,jdk,sdk,apppium的服务端和客户端等,以及任意一种元素定位工具,然后编码可以在编辑器里面编码,也可以用元素定位器去录制生成代码。
相关文章:

Python+Appium编写脚本
一、环境配置 1、安装JDK,版本1.8以上 2、安装Python,版本3.x以上,用来解释python 3、安装node.js,版本^14.17.0 || ^16.13.0 || >18.0.0,用来安装Appimu Server 4、安装npm,版本>8,用…...

RK3288 android7.1 适配 ilitek i2c接口TP
一,Ilitek 触摸屏简介 Ilitek 提供多种型号的触控屏控制器,如 ILI6480、ILI9341 等,采用 I2C 接口。 这些控制器能够支持多点触控,并具有优秀的灵敏度和响应速度。 Ilitek 的触摸屏控制器监测屏幕上的触摸事件。 当触摸发生时&am…...

C++ 越来越像函数式编程了!
C 越来越像函数式编程了 大家好,欢迎来到今天的博客话题。今天我们要聊的是 C 这门老牌的强类型语言是如何一步一步向函数式编程靠拢的。从最早的函数指针,到函数对象(Functor),再到 std::function 和 std::bind&…...

maven工程结构说明
1、maven工程文件目录 |-- pom.xml # Maven 项目管理文件 |-- src # 放项目源文件|-- main # 项目主要代码| |-- java # Java 源代码目录| | -- com/example/myapp…...

【GESP】C++一级真题练习(202312)luogu-B3921,小杨的考试
GESP一级真题练习。为2023年12月一级认证真题。逻辑计算问题。 题目题解详见:【GESP】C一级真题练习(202312)luogu-B3921,小杨的考试 | OneCoder 【GESP】C一级真题练习(202312)luogu-B3921,小杨的考试 | OneCoderGESP一级真题练习。为2023…...

游戏中Dubbo类的RPC设计时的注意要点
一.消费方 1.需要使用到动态代理,代理指定的接口,这样子接口被调用时,就可以拿到:"类名 方法名参数返回值" 这些类型。 2.既然是rpc,那么接口被调用时,肯定在动态代理中会进行网络消息的发送&a…...

ARXML汽车可扩展标记性语言规范讲解
ARXML: Automotive Extensible Markup Language (汽车可扩展标记语言) xmlns: Xml name space (xml 命名空间) xsd: Xml Schema Definition (xml 架构定义) 1、XML与HTML的区别,可扩展。 可扩展,主要是…...

Hadoop(HDFS)
Hadoop是一个开源的分布式系统架构,旨在解决海量数据的存储和计算问题,Hadoop的核心组件包括Hadoop分布式文件系统(HDFS)、MapReduce编程模型和YARN资源管理器,最近需求需要用到HDFS和YARN。 文章目录 HDFS优缺点HDFS的读写原理 常…...

机器学习系列----梯度下降算法
梯度下降算法(Gradient Descent)是机器学习和深度学习中最常用的优化算法之一。无论是在训练神经网络、线性回归模型,还是其他类型的机器学习模型时,梯度下降都是不可或缺的一部分。它的核心目标是最小化一个损失函数(…...

AI大模型:软件开发的未来之路
随着AI技术的快速发展,AI大模型正在对软件开发流程产生深远的影响。从代码自动生成到智能测试,AI大模型正在重塑软件开发的各个环节,为软件开发者、企业和整个产业链带来新的流程和模式变化。 首先,AI大模型的定义是指通过大规模…...

指标+AI+BI:构建数据分析新范式丨2024袋鼠云秋季发布会回顾
10月30日,袋鼠云成功举办了以“AI驱动,数智未来”为主题的2024年秋季发布会。大会深度探讨了如何凭借 AI 实现新的飞跃,重塑企业的经营管理方式,加速数智化进程。 作为大会的重要环节之一,袋鼠云数栈产品经理潮汐带来了…...

2024年第四届“网鼎杯”网络安全比赛---朱雀组Crypto- WriteUp
2024年第四届“网鼎杯”网络安全比赛---朱雀组Crypto-WriteUp Crypto:Crypto-2:Crypto-3: 前言:本次比赛已经结束,用于赛后复现,欢迎大家交流学习! Crypto: Crypto-2: …...

关于Markdown的一点疑问,为什么很多人说markdown比word好用?
markdown和word压根不是一类工具,不存在谁比谁好,只是应用场景不一样。 你写博客、写readme肯定得markdown,但写合同、写简历肯定word更合适。 markdown和word类似邮箱和微信的关系,这两者都可以通信,但微信因为功能…...

NoSQL大数据存储技术测试(1)绪论
写在前面:未完成测试的同学,请先完成测试,此博文供大家复习使用,(我的答案)均为正确答案,大家可以放心复习 单项选择题 第1题 以下不属于云计算部署模型的是( ) 公…...

Linux命令学习,git命令
Linux系统,Git是一个强大的版本管理系统,允许用户跟踪代码的更改、管理项目历史以及与他人协作。 Linux Git命令: 初始化仓库:当前目录创建一个Git仓库,生成.git隐藏目录存储版本历史和其他Git相关的元数据。 git init 克隆仓库…...

【AI大模型】Transformer中的编码器详解,小白必看!!
前言 Transformer中编码器的构造和运行位置如下图所示,其中编码器内部包含多层,对应下图encoder1…encoder N,每个层内部又包含多个子层:多头自注意力层、前馈神经网络层、归一化层,而最关键的是多头自注意力层。 自注…...

PostgreSQL 字段按逗号分隔成多条数据的技巧与实践 ️
全文目录: 开篇语前言 📚1. PostgreSQL 字段拆分的基本概念 🎯2. 使用 string_to_array 函数拆分字段 💬示例:使用 string_to_array 拆分字段结果: 3. 使用 unnest 和 string_to_array 结合拆分 ǵ…...

设计模式学习总结(一)
设计模式学习笔记 面向对象、设计原则、设计模式、编程规范、重构之间的关系 面向对象、设计原则、设计模式、编程规范、重构之间的关系 面向对象 现在,主流的编程范式或者是编程风格有三种:面向过程、面向对象和函数式编程。 需要掌握七大知识点&#…...

软考中级 软件设计师 上午考试内容笔记(个人向)Part.1
软考上午考试内容 1. 计算机系统 计算机硬件通过高/低电平来模拟1/0信息;【p进制】: K n K n − 1 . . . K 2 K 1 K 0 K − 1 K − 2... K − m K n r n . . . K 1 r 1 K 0 r 0 K − 1 r − 1 . . . K − m r − m K_nK_{n-1}...K_2K_1K_0K…...

PHP API的数据交互类型设计
PHP API的数据交互类型设计涉及多个方面,包括请求方法、数据格式、安全性考虑等。以下是对PHP API数据交互类型设计的详细探讨: 一、请求方法 在PHP API中,常见的请求方法包括GET、POST、PUT、DELETE等。这些方法在数据交互中各有其用途和特…...

【EFK】Linux集群部署Elasticsearch最新版本8.x
【EFK】Linux集群部署Elasticsearch最新版本8.x 摘要环境准备环境信息系统初始化启动先决条件 下载&安装修改elasticsearch.yml控制台启动Linux服务启动访问验证查看集群信息查看es健康状态查看集群节点查询集群状态 生成service token验证service tokenIK分词器下载 摘要 …...

【大数据测试 Elasticsearch — 详细教程及实例】
大数据测试 Elasticsearch — 详细教程及实例 1. Elasticsearch 基础概述核心概念 2. 搭建 Elasticsearch 环境2.1 安装 Elasticsearch2.2 配置 Elasticsearch 3. 大数据测试的常见方法3.1 使用 Logstash 导入大数据3.2 使用 Elasticsearch 的 Bulk API3.3 使用 Benchmark 工具…...

用ArkTS写一个登录页面(实现简单的逻辑)
登录页面 1.登录页面编码 Extend(TextInput) function customStyle(){.backgroundColor(#fff).border({width:{bottom:0.5},color:#e4e4e4}).borderRadius(1) //让圆角不明显.placeholderColor(#c3c3c5).caretColor(#fa711d) //input获取焦点样式 }Entry Component struct Log…...

matlab将INCA采集的dat文件多个变量批量读取到excel中
参考资料: MATLAB处理INCA采集数据(mdf,dat等)一 使用matlab处理INCF采集数据,mdf(.dat)格式文件,并将将其写入excel文件 这个资料只能一个变量一个变量的提取,本对其进…...

list集合常见去重方式以及效率对比
1.概述 list集合去重是开发中比较常用的操作,在面试中也会经常问到,那么list去重都有哪些方式?他们之间又该如何选择呢? 本文将通过LinkedHashSet、for循环、list流toSet、list流distinct等4种方式分别做1W数据到1000W数据单元测试…...

JavaWeb——Web入门(7/9)-Tomcat-介绍(Tomcat 的简介:轻量级Web服务器,支持Servlet/JSP少量JavaEE规范)
目录 Web服务器的作用 三个方面的讲解 Tomcat 的简介 小结 Web服务器的作用 封装 HTTP 协议操作:Web服务器是一个软件程序,对 HTTP 协议的操作进行了封装。这样开发人员就不需要再直接去操作 HTTP 协议,使得外部应用程序的开发更加便捷、…...

【SpringBoot】19 文件/图片下载(MySQL + Thymeleaf)
Git仓库 https://gitee.com/Lin_DH/system 介绍 从 MySQL 中,下载保存的 blob 格式的文件。 代码实现 第一步:配置文件 application.yml spring:jackson:date-format: yyyy-MM-dd HH:mm:sstime-zone: GMT8datasource:driver-class-name: com.mysql.…...

陪诊问诊APP开发实战:基于互联网医院系统源码的搭建详解
时下,开发一款功能全面、用户体验良好的陪诊问诊APP成为了医疗行业的一大热点。本文将结合互联网医院系统源码,详细解析陪诊问诊APP的开发过程,为开发者提供实用的开发方案与技术指导。 一、陪诊问诊APP的背景与功能需求 陪诊问诊APP核心目…...

Spark 中 RDD 的诞生:原理、操作与分区规则
Spark 的介绍与搭建:从理论到实践-CSDN博客 Spark 的Standalone集群环境安装与测试-CSDN博客 PySpark 本地开发环境搭建与实践-CSDN博客 Spark 程序开发与提交:本地与集群模式全解析-CSDN博客 Spark on YARN:Spark集群模式之Yarn模式的原…...

c++构造与析构
构造函数特性 名称与类名相同:构造函数的名称必须与类名完全相同,并且不能有返回值类型(包括void)。 自动调用:构造函数在对象实例化时自动调用,不需要手动调用。 初始化成员变量:构造函数的主…...