【性能测试】移动测试md知识总结第1篇:移动端测试课程介绍【附代码文档】
移动测试完整教程(附代码资料)主要内容讲述:移动端测试课程介绍,移动端测试知识概览,移动端测试环境搭建,ADB常用命令学习主要内容,学习目标,学习目标,1. window安装andorid模拟器,学习目标。主流移动端自动化测试工具,Appium环境搭建,appium入门案例,App基础操作API,手机控件查看工具uiautomatorviewer,元素定位api学习目标,学习目标,学习目标,1. Appium 背景介绍,2. appium安装的2种方式,3. Appium-python库安装,学习目标,1.打开PyCharm 创建一个新项目,2.在hello.py文件中输入如下代码,3. 启动Appium和 Android模拟器,4. 运行hello.py观看模拟器的设置应用是否被打开,学习目标,学习目标,学习目标,1.app元素定位操作API,2. 定位一组元素,3.显示等待。app元素信息操作,元素事件操作,模拟手势操作学习目标,学习目标,学习目标,学习目标,手机操作api,学习目标。setup和teardown函数,常用插件学习目标,1、Pytest安装和介绍,2、pytest第一个例子,3、运行方式,学习目标,1. pytest配置文件,学习目标。pytest提高--fixture,Pytest 提高2,PO模式简介,前提准备,按照业务逻辑抽取代码学习目标,学习目标,学习目标,学习目标,学习目标,学习目标。抽取find_element,抽取基本的操作,Yaml介绍,python解析yaml文件学习目标,总结,学习目标,学习目标,学习目标。yaml数据驱动案例,Allure,pytest中使用allure,Jenkins安装于配置学习目标,学习目标,学习目标,学习目标,学习目标,学习目标。Jenkins持续集配置学习目标,学习目标。
全套笔记资料代码移步: 前往gitee仓库查看
感兴趣的小伙伴可以自取哦,欢迎大家点赞转发~
移动端测试课程介绍
学习主要内容
|1|移动测试分类及android环境搭建| |---|---| |2|adb常用命令| |3|appium环境搭建及使用| |4|pytest框架学习| |5|PO模式| |6|数据驱动| |7|Allure报告| |8|Jenkins持续集成|
参考资料:
[1. Appium中文开发手册](
[2. Appium 官方文档](
[3. pytest官网](
[4. Jenkins中文用户手册](
[5. Json官方文档](
学习目标
- 掌握移动端安卓模拟器的安装
- 掌握常见的adb指令
- 了解主流的移动端自动化测试工具
- 掌握appium环境搭建
- 了解appium入门案例
移动端测试知识概览
学习目标
- 了解移动端测试分类
1. 什么事移动端测试
移动端测试是指对移动应用进行的测试, 即实体的特性满足需求的程度
2. 移动端测试分类
2.1 app功能测试
- 业务逻辑正确性测试
python 1. 查看是否符合业务需求文档 2. 是否满足隐性需求
- 兼容性测试
python 1. 系统版本是否兼容: 安卓 原生系统上下版本间是否兼容,例如安卓10.0的是否兼容9.0 二次开发的系统, 比如小米的MIUI系统间的兼容、华为的EMUI上下版本间兼容性是否良好 ios 版本间的兼容是否良好 2. 分辨率是否兼容 3. 网络情况 弱网测试、WIFI限速、更改网络app模式
- 异常测试
```python 1.热启动应用 [1]app至于后台时是A页面,切换到前台,还是A页面,还是初始化页面 [2]app长时间置于后台,切换到前台,还是A页面,还是初始化页面,崩溃/闪退
2.网络切换和中断恢复 [1]4g-2g wifi-4g,保证app可用,业务正常 [2]wif-断网-wifi 断点续传 下载应用5M 下载了3M断网,再次联网,继续当前位置下载
3.电话和信息中断恢复 [1]电话:看视频,打电话30分钟,切换为继续查看位置 [2]短信:玩游戏
4.升级安装卸载测试 [1]升级测试 临近版本升级 1.0--->1.1--->1.2 跨版本升级 1.0---->2.0 [2]安装测试 首次安装 覆盖安装 高版本--->低版本 成功 低版本--->高版本 不允许
卸载后安装 [3]卸载测试 首次卸载 卸载--->安装--->卸载
5.健壮性测试 手机资源消耗 流量消耗 崩溃恢复等测试 ```
2.2 app自动化测试
```python 通过场景和数据的预设,把以人为驱动的测试行为转化为机器执行的一种过程.
⚠ 注意: 并不是所有功能都能进行自动化. ```
2.3 app安全测试
python 通过安全测试技术,保证app尽可能的不存在安全漏洞.
更多移动测试参考:
- [移动测试的分类](
移动端测试环境搭建
移动端自动化测试的基础环境配置
-
- 安装Java环境
python Android应用为例讲解,需要安装java环境
-
- SDK环境
python Android依赖SDK的环境
-
- 模拟器环境
python 考虑大家连接真机不方便,所以采用模拟器替代
1. Wind 安装java环境
安装步骤:
1.1 安装jdk1.8
```python 运行jdk-8u151-windows-x64.exe⽂件,默认安装即可
(例如我的安装⽬录:C:\Program Files\Java\jdk1.8.0) ```
1.2 配置java环境变量(windows为例)
```python 1.进入我的电脑-->属性-->高级系统设置--->环境变量
2.在系统变量下点击新建 -> 变量名: JAVA_HOME -> 变量值: C:\Program Files\Java\jdk1.8.0 ```
1.3 验证环境变量
python 1.打开dos 快捷键win+r 2.输入java -version
出现下图,说明安装成功
2. Mac 安装java环境
将下载的osx版的java环境默认进行安装,然后进行一下配置:
python 1.进入命令行, vim ~/.bash_profile 2.# set jdk1.8 JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar PATH=$PATH:$JAVA_HOME/bin export JAVA_HOME CLASSPATH export PATH
启动终端,输入java -version查看是否正常启动
1. Window 安装sdk(Androi需要的环境)
安装步骤:
1.1 解压Android sdk 文件夹
注意:路径中不要有中文, 确保文件夹下有一下两个文件
如下图:
1.2 配置到系统环境变量下.
```python SDK环境变量配置(Windowns7为例)
1.进入我的电脑 -> 属性 -> 高级系统设置 -> 环境变量2.在系统变量下点击新建 -> 变量名: ANDROID_HOME -> 变量值: D:\android-sdk -> 点击确定按钮3.在系统变量下找到系统的path变量,最后添加:;%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools;(最前面是一个分号,如果path变量最后已有分号,可不用添加) -> 点击确定按钮
```
1.3 验证环境变量是否配置成功
- 在dos中输入adb指令,如下图配置成功
- 在dos中输入android指令 出现Android sdk manager对话框
注意:**
假如sdk中已经有build-tools和platform-tools文件夹,就不需要再进行下载安装了
2. Mac 安装android sdk
- 把下载的android sdk macosx版本的解压到指定目录(我的解压到//Library/Java/)
注意:
假如sdk没有build-tools和platform-tools文件夹,要把提供的文件夹移动到此处, 后面只需要配置环境变量即可,不需要下载了
- 把sdk配置到系统环境变量
python 1.进入命令行, vim ~/.bash_profile 2.# set android ANDROID_HOME=电脑存放的路径/android-sdk-macosx PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools export ANDROID_HOME export PATH
- 验证是否成功
验证adb命令: 在终端输入adb,出现adb版本信息说明成功
验证android是否配置成功: 在终端输入android, 出现此图片说明成功
3、选择不同版本的的Android系统进行下载
注意:
由于安卓镜像在国外,最好更换国内的镜像
步骤
- 在弹出的android sdk manager页面,点击tools, 下啦框点击options
- 在弹出的对话框输入国内惊现的地址和端口号.
```python 镜像地址列表(也可以网上查找最新的): 中国科学院开源协会镜像站地址: IPV4/IPV6: mirrors.opencas.cn 端口:80 IPV4/IPV6: mirrors.opencas.org 端口:80 IPV4/IPV6: mirrors.opencas.ac.cn 端口:80 上海GDG镜像服务器地址: sdk.gdgshanghai.com 端口:8000
北京化工大学镜像服务器地址:IPv4: ubuntu.buct.edu.cn/ 端口:80IPv4: ubuntu.buct.cn/ 端口:80IPv6: ubuntu.buct6.edu.cn/ 端口:80大连东软信息学院镜像服务器地址:mirrors.neusoft.edu.cn 端口:80
```
1. window安装andorid模拟器
1. 模拟器Genymotion安装
```python 1.执行genymotion-2.11.0-vbox.exe(是一个集合程序,包含genymotion和virtualbox) -> 不需要更改配置,直接下一步默认安装
2.安装完genymotion继续等待,会提示安装virtualbox,继续安装,期间会提示安装oracle插件,全部允许安装
3.安装完成后会在桌面展示genymotion和virtualbox两个图标 ```
注意:
安装其他的模拟器也可以 ,安装成功就可以.(比如MuMu 逍遥 夜神 雷电)
2. Mac 下安装模拟器
mac下安装要装两个dmg文件: genymotion-2.12.1.dmg和VirtualBox-5.2.26-128414-OSX.dmg
python 1.安装genymotion-2.12.1.dmg-》不用更改配置,默认安装就行 2.安装VirtualBox-5.2.26-128414-OSX.dmg -》 不用更改配置直接安装就行 3.安装后也会看到上面三个应用
3.虚拟机镜像导入
python 1.打开virtualbox 2.进入virtualbox -> 管理 -> 导入虚拟电脑 3.点击文件选择(Samsung Galaxy S6 - 5.1.0 - API 22 - 1440x2560.ova) -> 点击下一步 4.勾选 重新初始化所有网卡的MAC地址 5.点击导入按钮 -> 等待倒入完成 6.virtualbox列表会展示如下图圈出的选项
4. 启动模拟器
在genymotion主界面点机start按钮.启动成功就会显示下图
5. 安装应用apk
安卓模拟器启动起来后,我们就可以安装要进行测试的应用了.安装成功后,我们的环境搭建就全部结束.
安装方法:
- adb命令行(后面讲解)
- 直接拖拽要安装的apk到模拟器上,自动安装
注意事项
1. 安装ARM插件
安装某些应用apk时由于apk功能比较丰富,但是模拟器自带的不支持这些功能,所以要安装arm插件,来满足apk的使用.
(1)、拖动ARM_Translation_Lollipop_20160402.zip到已启动的android虚拟机上
需要下载对应版本的插件、我们使用的是adnroid5.1 所以使用的是这个
(2)点击提示的ok按钮
(3)、再次点击提示的ok按钮,重启模拟器既可以安装apk文件
2. 使用其他版本的模拟器的步骤
(1)、需要到genymotion官网上注册一个账号
(2)、进入genymotion界面,点击add按钮、会弹出登录对话框、输入注册的账号
(3)、登录成功后可以选择对应不同的android版本、手机型号进行安装
ADB常用命令
学习目标
- 掌握常用的ADB命令
1. ADB命令简介
```python ADB全名Andorid Debug Bridge。 是一个Debug工具。为何称之为Bridge呢? 因为adb是一个标准的C/S结构的工具, 是要连接开发电脑和调试手机的
包含如下几个部分: 1.Client端,运行在开发机器中,即你的开发PC机。用来发送adb命令。 2.Daemon守护进程, 运行在调试设备中, 即的调试手机或模拟器。 3.Server端, 作为一个后台进程运行在开发机器中, 即你的开发PC机. 用来管理PC中的Client端和手机的Daemon之间的通信。 ```
2. 常用命令
- adb 帮助
python adb --help
- 启动adb 服务
python adb start-server
- 关闭adb 服务
python adb kill-server
- 获取设备号
python adb devices
- 获取系统版本
python adb shell getprop ro.build.version.release
- 发送文件到手机
```python adb push 电脑端⽂件路径/需要发送的文件,手机端存储的路径
adb push C:\Users\win\Desktop\xx.png /sdcard ```
- 从手机拉取文件
```python adb pull 手机端的路径/拉取文件名 电脑端存储文件路径
adb pull /sdcard/xx.png C:\Users\win\Desktop ```
- 查看手机运行日志
python adb logcat
- 进入到手机终端
python adb shell
- 获取app启动包名和启动名(⚠手机需要先打开对应app)
python 1.Mac/Linux: 'adb shell dumpsys window windows | grep mFocusedApp’ 2.在 Windows 终端运⾏ 'adb shell dumpsys window windows | findstr mFocusedApp’
- 安装app到手机
python adb install 路径/xxx.apk
- 卸载手机app
python adb uninstall app
- 获取app启动时间
python adb shell am start -W 包名/.启动名
未完待续, 同学们请等待下一期
全套笔记资料代码移步: 前往gitee仓库查看
感兴趣的小伙伴可以自取哦,欢迎大家点赞转发~
相关文章:

【性能测试】移动测试md知识总结第1篇:移动端测试课程介绍【附代码文档】
移动测试完整教程(附代码资料)主要内容讲述:移动端测试课程介绍,移动端测试知识概览,移动端测试环境搭建,ADB常用命令学习主要内容,学习目标,学习目标,1. window安装andorid模拟器,学习目标。主流移动端自动…...
Vue2和vue3的区别(前端面试常见问题)
1.Api的变化:vue3使用组合式Api(compostion Api)和Vue2是选项式Api(options Api)。选项式Api具有data ,watch,methods,computed,一个个的模块。如果代码过多可读性会很差…...

openGauss学习笔记-241 openGauss性能调优-SQL调优-审视和修改表定义
文章目录 openGauss学习笔记-241 openGauss性能调优-SQL调优-审视和修改表定义241.1 审视和修改表定义概述241.2 选择存储模型241.3 使用局部聚簇241.4 使用分区表241.5 选择数据类型 openGauss学习笔记-241 openGauss性能调优-SQL调优-审视和修改表定义 241.1 审视和修改表定…...
PDFPlumber解析PDF文本报错:AssertionError: (‘Unhandled’, 6)
文章目录 1、问题描述2、问题原因3、问题解决 1、问题描述 今天在使用PDFPlumber模块提取PDF文本时extract_text()方法报错,报错内容如下: Traceback (most recent call last):......File "F:\Python\...\site-packages\pdfminer\pdffont.py"…...

51WORLD正式落地中东,助力沙特伙伴与客户数字化升级!
近日,在被誉为中东“数字达沃斯”的LEAP科技展上,51WORLD首次震撼亮相Digital Twin Riyadh2924k㎡ 全要素城市底座、数字地球平台51Earth,向中东及全球科技从业者展现中国企业技术实力与创新能力。此外,以LEAP为起点,5…...

嵌入式学习38-数据库
数据库软件: 关系型数据库: Mysql (开源) Oracle SqlServer Sqlite (小型数据) 非关系型数据库:(快速查找数据) Redis NoSQ…...

去除PDF论文行号的完美解决方案
去除PDF论文行号的完美解决方案 1. 遇到的问题 我想去除论文的行号,但是使用网上的Adobe Acrobat裁剪保存后 如何去掉pdf的行编号? - 知乎 (zhihu.com) 翻译时依然会出现行号,或者是转成word,这样就大大损失了格式,…...

《ElementPlus 与 ElementUI 差异集合》icon 图标使用(包含:el-button,el-input和el-dropdown 差异对比)
安装 注意 ElementPlus 的 Icon 图标 要额外安装插件 element-plus/icons-vue. npm install element-plus/icons-vue注册 全局注册 定义一个文件 element-icon.js ,注意代码第 6 行。加上了前缀 ElIcon ,避免组件命名重复,且易于理解为 e…...
力扣题库第8题:去重后的最长子串
题目: 给定一个字符串 s ,请你找出其中不含有重复字符的 最长 子串的长度。 示例 1: 输入: s "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 示例 2: 输入: s "bbbbb" …...
CSS样式中长度单位含义解析:rpx、px、vw、vh、em、rem、pt
在 CSS 样式中,有几种常见的长度单位,包括 rpx 、 px 、 vw 和 vh 等,含义解析如下: 1 . rpx (响应像素): 是微信小程序中的一种相对长度单位,可以根据屏幕宽度进行自适应缩放。 1rp…...

全国车辆识别代码信息API查询接口-VIN深度解析
我们先来介绍下什么是vin码,以及vin码的构成结构解析,汽车VIN码,也叫车辆识别号码,通俗可以理解为汽车的身份证号码。 VIN码一共分四大部分: 1~3位,是世界制造厂识别代号(WMI)&…...
python django 模型中字段设置blank, null属性值用法说明
问题1: ShareUser models.CharField(max_length128, blankTrue) blank设置True和false分别代表什么含义, 有什么区别?chatgpt回答的答案如下: 在 Django 模型字段中,blank 参数用于指定在创建对象时该字段是否可以为空值。它的含义如下: blankTrue:…...
暴雨信息:可持续转型更需要“以人为本”
数字化正在开启新的商业模式和价值流,为企业与组织带来巨大收益。其中,“人 (People)”这一因素至关重要。 提供更好的工作与生活体验,应对人口老龄化、劳动力短缺等挑战。对于企业而言,解决这些问题既是社会责任,也是…...

1.2_3 TCP/IP参考模型
文章目录 1.2_3 TCP/IP参考模型(一)OSI参考模型与TCP/IP参考模型(二)5层参考模型(三)5层参考模型的数据封装与解封装 1.2_3 TCP/IP参考模型 (一)OSI参考模型与TCP/IP参考模型 TCP/I…...

真空泵系统数据采集远程监控解决方案
行业背景 半导体制造业可以说是现代电子工业的核心产业,广泛应用于计算机、通信、汽车、医疗等领域。而在半导体生产加工过程中,如刻蚀、 镀膜、 扩散、沉积、退火等环节,真空泵都是必不可少的关键设备,它可以构建稳定受控的真空…...

Python语言在编程业界的地位——《跟老吕学Python编程》附录资料
Python语言在编程业界的地位——《跟老吕学Python编程》附录资料 ⭐️Python语言在编程业界的地位2024年3月编程语言排行榜(TIOBE前十) ⭐️Python开发语言开发环境介绍1.**IDLE**2.⭐️PyCharm3.**Anaconda**4.**Jupyter Notebook**5.**Sublime Text** …...

基于Redis自增实现全局ID生成器(详解)
本博客为个人学习笔记,学习网站与详细见:黑马程序员Redis入门到实战 P48 - P49 目录 全局ID生成器介绍 基于Redis自增实现全局ID 实现代码 全局ID生成器介绍 背景介绍 当用户在抢购商品时,就会生成订单并保存到数据库的某一张表中&#…...
hadoop 总结
1.hadoop 配置文件 core-site hdfs-site yarn-site.xml worker hdfs-site.xml <?xml version"1.0" encoding"UTF-8"?> <?xml-stylesheet type"text/xsl" href"configuration.xsl"?> <configuration><pr…...

luatos框架中LVGL如何使用中文字体〈二〉编写脚本设置中文字体
本节内容,将和大家一同学习,在luatos环境中,使用lvgl库,一步步的编译固件、编写脚本,最终实现中文字体的显示。 芯片:AIR101 LCD屏:ST7789 上一节,我们一同学习了,硬件引…...
c++单例模式和call_once函数
单例模式是一种常见的设计模式,用于确保某个类只能创建一个实例。由于单例模式是全局唯一的,因此在多线程中使用单例模式时需要考虑线程安全问题。 1.GetInstance()实例化一个对象 懒汉式:第一次用到类的时候才会去实例化。 懒汉式创建对象…...

【OSG学习笔记】Day 18: 碰撞检测与物理交互
物理引擎(Physics Engine) 物理引擎 是一种通过计算机模拟物理规律(如力学、碰撞、重力、流体动力学等)的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互,广泛应用于 游戏开发、动画制作、虚…...
MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例
一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...
Linux云原生安全:零信任架构与机密计算
Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...
HTML前端开发:JavaScript 常用事件详解
作为前端开发的核心,JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例: 1. onclick - 点击事件 当元素被单击时触发(左键点击) button.onclick function() {alert("按钮被点击了!&…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作
一、上下文切换 即使单核CPU也可以进行多线程执行代码,CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短,所以CPU会不断地切换线程执行,从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...

ArcGIS Pro制作水平横向图例+多级标注
今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作:ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等(ArcGIS出图图例8大技巧),那这次我们看看ArcGIS Pro如何更加快捷的操作。…...
Linux离线(zip方式)安装docker
目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1:修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本:CentOS 7 64位 内核版本:3.10.0 相关命令: uname -rcat /etc/os-rele…...
深入理解Optional:处理空指针异常
1. 使用Optional处理可能为空的集合 在Java开发中,集合判空是一个常见但容易出错的场景。传统方式虽然可行,但存在一些潜在问题: // 传统判空方式 if (!CollectionUtils.isEmpty(userInfoList)) {for (UserInfo userInfo : userInfoList) {…...

windows系统MySQL安装文档
概览:本文讨论了MySQL的安装、使用过程中涉及的解压、配置、初始化、注册服务、启动、修改密码、登录、退出以及卸载等相关内容,为学习者提供全面的操作指导。关键要点包括: 解压 :下载完成后解压压缩包,得到MySQL 8.…...
Kubernetes 网络模型深度解析:Pod IP 与 Service 的负载均衡机制,Service到底是什么?
Pod IP 的本质与特性 Pod IP 的定位 纯端点地址:Pod IP 是分配给 Pod 网络命名空间的真实 IP 地址(如 10.244.1.2)无特殊名称:在 Kubernetes 中,它通常被称为 “Pod IP” 或 “容器 IP”生命周期:与 Pod …...