【性能测试】移动测试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官方文档](

学习目标

  1. 掌握移动端安卓模拟器的安装
  2. 掌握常见的adb指令
  3. 了解主流的移动端自动化测试工具
  4. 掌握appium环境搭建
  5. 了解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尽可能的不存在安全漏洞.

更多移动测试参考:

  • [移动测试的分类](

移动端测试环境搭建

移动端自动化测试的基础环境配置

    1. 安装Java环境

python Android应用为例讲解,需要安装java环境

    1. SDK环境

python Android依赖SDK的环境

    1. 模拟器环境

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

出现下图,说明安装成功

img

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查看是否正常启动

java安装

1. Window 安装sdk(Androi需要的环境)

安装步骤:

1.1 解压Android sdk 文件夹

注意:路径中不要有中文, 确保文件夹下有一下两个文件

如下图: img

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指令,如下图配置成功 img
  • 在dos中输入android指令 出现Android sdk manager对话框 img

    注意:**

假如sdk中已经有build-tools和platform-tools文件夹,就不需要再进行下载安装了

2. Mac 安装android sdk

  1. 把下载的android sdk macosx版本的解压到指定目录(我的解压到//Library/Java/)

macsdk

注意:

假如sdk没有build-tools和platform-tools文件夹,要把提供的文件夹移动到此处, 后面只需要配置环境变量即可,不需要下载了

  1. 把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

  1. 验证是否成功

验证adb命令: 在终端输入adb,出现adb版本信息说明成功

Mac adb

验证android是否配置成功: 在终端输入android, 出现此图片说明成功

Mac android

3、选择不同版本的的Android系统进行下载

注意:

由于安卓镜像在国外,最好更换国内的镜像

步骤

  • 在弹出的android sdk manager页面,点击tools, 下啦框点击options

还原

  • 在弹出的对话框输入国内惊现的地址和端口号.

set

```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/ 端口:80
     IPv4: ubuntu.buct.cn/ 端口:80
     IPv6: 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两个图标 ```

img

注意:

安装其他的模拟器也可以 ,安装成功就可以.(比如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按钮

arm插件1

(3)、再次点击提示的ok按钮,重启模拟器既可以安装apk文件

arm插件1

2. 使用其他版本的模拟器的步骤

(1)、需要到genymotion官网上注册一个账号

(2)、进入genymotion界面,点击add按钮、会弹出登录对话框、输入注册的账号

登录genymotion

(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仓库查看

感兴趣的小伙伴可以自取哦,欢迎大家点赞转发~

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【c++修仙】c语言练气第九重动态内存管理

为什么要有动态内存 例如 int a20 char arr[10]{10}; 这些的内存是固定的 但是有时候我们需要的空间大小是在程序运行的时候才能知道的 malloc和free void* malloc (size_t size) 这个函数向内存申请一块连续可用的空间,并返回指向这块空间的指针。 如果开辟…

环信ChatroomUIKit功能详解——超详细介绍

聊天室是当下泛娱乐社交应用中最经典的玩法,通过调用环信的 IM SDK 接口,可以快速创建聊天室。如果想根据自己业务需求对聊天室应用的 UI界面、弹幕消息、礼物打赏系统等进行自定义设计,最高效的方式则是使用环信的 ChatroomUIKit 。 文档地址…

抓包工具fiddler的使用

问题查询 定位bug是前端的问题还是后端的问题? 1.如果抓不到请求,显然就是前端的问题 2.如果有请求但是没有相应,那就是后端的问题 3.如果有请求也有相应,需要查看响应信息,如果返回报错了,则需要具体分析报…

模型量化(一)—— 非对称量化、对称量化(全代码)

模型量化是一种减少深度学习模型大小和提高推理速度的技术,通过降低模型参数的精度(例如,从32位浮点数减少到8位整数)来实现。 量化三个好处: 更少的内存消耗(对于智能手机等端侧设备很重要)更少的推断时间&#xff…

一道AI做过的小学奥数题,结果表明:今天的AI已经达到精神病人的智力水平

重庆家长找AI计算的小学奥数题,AI没有找到答案。也就是被吹上天的AI其实根本不具有人类智能。但不妨把AI理解为精神病人,因为他们有异常的艺术天赋。 两地A、B之间相距4000m;甲从A地以匀速60m/min向B出发,同时乙从B地出发以匀速26…

toJSONString空值被忽略解决办法 toJSONString过程中时间格式丢失问题解决办法

toJSONString空值被忽略解决办法 原代码: GcGarbageBuildingDO data gcGarbageBuildingService.get(id); result.putAll(JSON.parseObject(JSON.toJSONString(data), Map.class));查询出来的data中部分字段值为null,在toJSONString的过程中会把null值…

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的车牌检测系统(Python+PySide6界面+训练代码)

摘要:本篇博客详细介绍了如何利用深度学习技术开发一个先进的车牌检测系统,并附上了完整的实现代码。系统核心采用了强大的YOLOv8算法,并对前代版本如YOLOv7、YOLOv6、YOLOv5进行了详尽的性能评估,包括mAP和F1 Score等关键指标的对…

重建大师模型构建精细网格失败是什么原因导致的呢?(如下图)

出现图中的报错一般是显存溢出、瓦块过大造成的。 重建大师是一款专为超大规模实景三维数据生产而设计的集群并行处理软件,输入倾斜照片,激光点云,POS信息及像控点,输出高精度彩色网格模型,可一键完成空三、自动建模和…

如何获取免费格式转换器MP3?全平台最新的20款软件推荐

随着数字音乐的普及,MP3格式已经成为了最为常见的音频格式之一。然而,有时我们可能会遇到需要转换音频格式的情况,比如将其他格式的音频文件转换为MP3格式。在这种情况下,一款好用的格式转换器就显得尤为重要。本文将为您推荐20款…

第14届环境与农业工程国际会议(ICEAE 2024)即将召开!

2024年第14届环境与农业工程国际会议(ICEAE 2024)将于6月7日至9日在泰国曼谷召开。本次会议旨在促进环境与农业工程的研究和开发活动,共同探讨领域内最新以及具有根本性的进展突破。热忱欢迎从事相关领域研究的专家,学者和专业技术…

YOLOv9改进项目|关于本周更新计划的说明24/3/12

目前售价售价59.9,改进点30个 专栏地址: 专栏介绍:YOLOv9改进系列 | 包含深度学习最新创新,主力高效涨点!!! 日期:24/3/12 本周更新计划说明: 1. 更新华为Gold YOLO中的…

人工智能迷惑行为大赏!

目录 人工智能迷惑行为大赏 一:人工智能的“幽默”瞬间 1. 图像识别出现AI的极限 2. 小批量梯度下降优化器 3. 智能聊天机器人的冰雹问题 4. 大语言模型-3经典语录 二:技术原理探究 1. 深度学习 2. 机器学习 3. 自然语言处理 4. 计算机视觉 三…

[Java、Android面试]_02_HashMap的原理

本人今年参加了很多面试,也有幸拿到了一些大厂的offer,整理了众多面试资料,后续还会分享众多面试资料,感兴趣的朋友可收藏关注。由于时间有限,只能每天整理一点,分享一点儿! 现分享如下&#xf…

读西游记第一回:西游记世界格局

天地之数: 元:十二万九千六百岁(129600年) 1元12会:子、丑、寅、卯、巳、午、未、申、酉、戌、亥。每会18000年。与12地支对应。 亥会期:前5400年混沌期,后5400年,盘古开天辟地&am…

【STL】stack栈容器与list链表容器

1.栈stack 栈具有先进后出的特性,最先进入的数据压在最底下,最后出来 2.list链表容器 list链表容器是一种双向链表,两端都可插入与删除,是双向访问迭代器,与vertor随机访问迭代器有不同的区别 reverse(&…

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:Toggle)

组件提供勾选框样式、状态按钮样式及开关样式。 说明: 该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 子组件 仅当ToggleType为Button时可包含子组件。 接口 Toggle(options: { type: ToggleType, is…

2024-Android大厂(字节跳动,腾讯

PS:全文点击蓝色文字,即可跳转链接 【字节面试官:看了3000多份简历,面试1000场后,想给金九银十找工作的程序员几点建议附大厂真题面经】 本文主要介绍校招,上半年疫情原因真正面试的时间和机会也不多&#…

网络流量监控软件AnaTraf:优化性能、排除故障的最佳选择

目录 导言 网络流量监控的重要性 AnaTraf网络万用表的功能与优势 网络故障排除与优化网络性能 结论 导言 在当今数字化时代,计算机网络已经成为企业和组织的核心基础设施。然而,网络流量的管理和监控对于确保网络性能的稳定和优化至关重要。本文将介…

11双体系Java学习之方法

方法简述 package method;public class Demo01 {//main 方法public static void main(String[] args) {//实际参数:实际调用传递给他的参数int sum add (1,2);System.out.println(sum);//test();}//加法//形式参数,用来定义作用的public static int add…

工作中常用的git命令

git 分布式版本控制系统。 使用远程仓库时候会有多个协议可以选择,使用https不仅仅速度慢,而且每次push都要输入口令。 HEAD 当前版本的指针,当切换本地版本的时候会快速指向指定版本文件 master git为我们创建主分支 origin 远程仓库的名…