【运维测试】移动测试自动化知识总结第1篇:移动端测试介绍(md文档已分享)

本系列文章md笔记(已分享)主要讨论移动测试相关知识。主要知识点包括:移动测试分类及android环境搭建,adb常用命令,appium环境搭建及使用,pytest框架学习,PO模式,数据驱动,Allure报告,Jenkins持续集成。掌握操作app的基本api,掌握元素定位及获取元素信息的api,掌握事件操作api,掌握app模拟手势操作,掌握手机操作的api。掌握pytest函数执行顺序,掌握pytest函数参数化,掌握PO模式的作用,掌握yaml语法。能够使用allure和pytest生成测试报告。

全套笔记和代码自取移步gitee仓库: gitee仓库获取完整文档和代码

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


共 7 章,34 子模块

移动端测试介绍

学习主要内容

1移动测试分类及android环境搭建
2adb常用命令
3appium环境搭建及使用
4pytest框架学习
5PO模式
6数据驱动
7Allure报告
8Jenkins持续集成

学习目标

  1. 掌握移动端安卓模拟器的安装
  2. 掌握常见的adb指令
  3. 了解主流的移动端自动化测试工具
  4. 掌握appium环境搭建
  5. 了解appium入门案例

移动端测试知识概览

学习目标

  • 了解移动端测试分类

1. 什么事移动端测试

移动端测试是指对移动应用进行的测试, 即实体的特性满足需求的程度

2. 移动端测试分类

2.1 app功能测试
  • 业务逻辑正确性测试
1. 查看是否符合业务需求文档
2. 是否满足隐性需求
  • 兼容性测试
1. 系统版本是否兼容: 安卓原生系统上下版本间是否兼容,例如安卓10.0的是否兼容9.0二次开发的系统, 比如小米的MIUI系统间的兼容、华为的EMUI上下版本间兼容性是否良好ios 版本间的兼容是否良好
2. 分辨率是否兼容
3. 网络情况弱网测试、WIFI限速、更改网络app模式
  • 异常测试
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自动化测试
通过场景和数据的预设,把以人为驱动的测试行为转化为机器执行的一种过程.⚠ 注意: 并不是所有功能都能进行自动化.
2.3 app安全测试
通过安全测试技术,保证app尽可能的不存在安全漏洞.

更多移动测试参考:

  • 移动测试的分类

移动端测试环境搭建

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

    1. 安装Java环境
Android应用为例讲解,需要安装java环境
    1. SDK环境
Android依赖SDK的环境
    1. 模拟器环境
考虑大家连接真机不方便,所以采用模拟器替代

1. Wind 安装java环境

安装步骤:

1.1 安装jdk1.8
运行jdk-8u151-windows-x64.exe⽂件,默认安装即可(例如我的安装⽬录:C:\Program Files\Java\jdk1.8.0)
1.2 配置java环境变量(windows为例)
1.进入我的电脑-->属性-->高级系统设置--->环境变量2.在系统变量下点击新建 -> 变量名: JAVA_HOME -> 变量值: C:\Program Files\Java\jdk1.8.0
1.3 验证环境变量
1.打开dos 快捷键win+r
2.输入java -version

出现下图,说明安装成功

img

2. Mac 安装java环境

将下载的osx版的java环境默认进行安装,然后进行一下配置:

1.进入命令行, vim ~/.bash_profile 
2.# set jdk1.8JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/HomeCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarPATH=$PATH:$JAVA_HOME/binexport JAVA_HOME CLASSPATHexport PATH

启动终端,输入java -version查看是否正常启动

java安装

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

安装步骤:

1.1 解压Android sdk 文件夹

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

如下图: img

1.2 配置到系统环境变量下.
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配置到系统环境变量
1.进入命令行, vim ~/.bash_profile
2.# set androidANDROID_HOME=电脑存放的路径/android-sdk-macosxPATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-toolsexport ANDROID_HOME export PATH
  1. 验证是否成功

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

Mac adb

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

Mac android

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

注意:

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

步骤

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

还原

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

set

镜像地址列表(也可以网上查找最新的):中国科学院开源协会镜像站地址:IPV4/IPV6: mirrors.opencas.cn 端口:80IPV4/IPV6: mirrors.opencas.org 端口:80IPV4/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安装

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

1.安装genymotion-2.12.1.dmg-》不用更改配置,默认安装就行
2.安装VirtualBox-5.2.26-128414-OSX.dmg  -》 不用更改配置直接安装就行
3.安装后也会看到上面三个应用

3.虚拟机镜像导入

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命令简介

ADB全名Andorid Debug Bridge。 是一个Debug工具。为何称之为Bridge呢? 
因为adb是一个标准的C/S结构的工具, 是要连接开发电脑和调试手机的包含如下几个部分:1.Client端,运行在开发机器中,即你的开发PC机。用来发送adb命令。2.Daemon守护进程, 运行在调试设备中, 即的调试手机或模拟器。3.Server端, 作为一个后台进程运行在开发机器中, 即你的开发PC机. 用来管理PC中的Client端和手机的Daemon之间的通信。

2. 常用命令

  • adb 帮助
adb --help
  • 启动adb 服务
adb start-server
  • 关闭adb 服务
adb kill-server
  • 获取设备号
adb devices
  • 获取系统版本
adb shell getprop ro.build.version.release
  • 发送文件到手机
adb push 电脑端⽂件路径/需要发送的文件,手机端存储的路径adb push C:\Users\win\Desktop\xx.png /sdcard
  • 从手机拉取文件
adb pull 手机端的路径/拉取文件名 电脑端存储文件路径adb pull /sdcard/xx.png C:\Users\win\Desktop
  • 查看手机运行日志
adb logcat
  • 进入到手机终端
adb shell
  • 获取app启动包名和启动名(⚠手机需要先打开对应app)
1.Mac/Linux: 'adb shell dumpsys window windows | grep mFocusedApp’
2.在 Windows 终端运⾏ 'adb shell dumpsys window windows | findstr mFocusedApp’
  • 安装app到手机
adb install 路径/xxx.apk
  • 卸载手机app
adb uninstall app
  • 获取app启动时间
adb shell am start -W 包名/.启动名

`python
adb shell getprop ro.build.version.release

* 发送文件到手机```python
adb push 电脑端⽂件路径/需要发送的文件,手机端存储的路径adb push C:\Users\win\Desktop\xx.png /sdcard
  • 从手机拉取文件
adb pull 手机端的路径/拉取文件名 电脑端存储文件路径adb pull /sdcard/xx.png C:\Users\win\Desktop
  • 查看手机运行日志
adb logcat
  • 进入到手机终端
adb shell
  • 获取app启动包名和启动名(⚠手机需要先打开对应app)
1.Mac/Linux: 'adb shell dumpsys window windows | grep mFocusedApp’
2.在 Windows 终端运⾏ 'adb shell dumpsys window windows | findstr mFocusedApp’
  • 安装app到手机
adb install 路径/xxx.apk
  • 卸载手机app
adb uninstall app
  • 获取app启动时间
adb shell am start -W 包名/.启动名

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

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

相关文章

python入门篇11-面向对象的基础使用

全文目录,一步到位 1.前言简介1.1 专栏传送门1.1.1 上文小总结1.1.2 上文传送门 2. python基础使用2.1 面向对象的基础使用2.1.1 创建类2.1.2 使用对象(定义成员变量)2.1.3 成员方法的定义与使用2.1.4 构造方法的使用2.1.5 常用魔术方法 2.2 面向对象思想核心2.2.1 面向对象_私…

蓝桥杯(Web大学组)2022国赛真题:用什么来做计算 A

判分标准 实现重置(AC)功能,得 1 分。 实现计算式子和结果显示功能,得 3 分。 实现计算功能,得 6 分。 应该按要求来就行吧,,一开始还在想是否要考虑小数点个数的问题还有式子是否有效…… 笔记…

使用 GreenSock(GSAP)实现 字符串动画

要使用 GreenSock(GSAP)实现 "JianMa XinXi" 这个字符串的动画,其中两个 x 字符自动旋转,j 和 m 字符上下跳动,并且美化这个字符串使其可以作为 logo 使用,我们可以通过以下步骤来实现&#xff1…

Transformer实战-系列教程19:DETR 源码解读6(Transformer类)

🚩🚩🚩Transformer实战-系列教程总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在Pycharm中进行 本篇文章配套的代码资源已经上传 点我下载源码 DETR 算法解读 DETR 源码解读1(项目配置/CocoDetection类) …

PS | 15个快捷键演示

01 前言 工具:Adobe Photoshop 2021 安装:无 网上自查 02 快捷键表 Ctrl T自由变换[减小画笔大小]增加画笔大小Shift [降低画笔硬度Shift ]增加笔刷硬度D默认前景/背景颜色X切换前景/背景颜色Ctrl J通过复制新建图层Ctrl Shift J通过剪切新建图层Esc取…

树莓派4B(Raspberry Pi 4B)使用docker搭建单机版nacos [基于docker-compose]

树莓派4B(Raspberry Pi 4B)使用docker搭建单机版nacos [基于docker-compose] 镜像仓库提供的基于arm64架构的nacos镜像很少,我选用的是centralx/nacos-server ,它是基于nacos 2.0.4开发的。 ⚠️ 本文基于docker-compose记述构建单…

使用 WPF + Chrome 内核实现高稳定性的在线客服系统复合应用程序

对于在线客服与营销系统,客服端指的是后台提供服务的客服或营销人员,他们使用客服程序在后台观察网站的被访情况,开展营销活动或提供客户服务。在本篇文章中,我将详细介绍如何通过 WPF Chrome 内核的方式实现复合客服端应用程序。…

#Z2294. 打印树的直径

Description 给你一棵树,树上有N个点,编号从0到N-1 请找出任意一条树的直径,并输出直径上的点,输出顺序为从直径的某个端点走向另一个端点 Format Input 第一行一个整数 n; 之后 n-1 行每行两个整数 u,v&#xf…

位运算总结(Java)

目录 位运算概述 位运算符 位运算的优先级 位运算常见应用 1. 给定一个数n,判断其二进制表示中的第x位是0还是1 2. 将数n的二进制表示中的第x位修改为1 3. 将数n的二进制表示中的第x位修改为0 4. 位图 例题:判断字符是否唯一 5. 提取数n的二进制…

《区块链公链数据分析简易速速上手小册》第5章:高级数据分析技术(2024 最新版)

文章目录 5.1 跨链交易分析5.1.1 基础知识5.1.2 重点案例:分析以太坊到 BSC 的跨链交易理论步骤和工具准备Python 代码示例构思步骤1: 设置环境和获取合约信息步骤2: 分析以太坊上的锁定交易步骤3: 跟踪BSC上的铸币交易 结论 5.1.3 拓展案例 1:使用 Pyth…

OCP的operator——(2)OLM

文章目录 了解OperatorOperator Lifecycle Manager(OLM)OLM概念和资源OLM是什么OLM资源Cluster service version(CSV)Catalog source定制catalog source的image模板目录健康需求 SubscriptionInstall planOperator groupOperator …

SQL世界之命令语句Ⅴ

目录 一、SQL CREATE INDEX 语句 1.SQL CREATE INDEX 语句 2.SQL CREATE INDEX 语法 3.SQL CREATE UNIQUE INDEX 语法 4.SQL CREATE INDEX 实例 二、SQL 撤销索引、表以及数据库 1.SQL DROP INDEX 语句 2.SQL DROP TABLE 语句 3.SQL DROP DATABASE 语句 4.SQL TRUNCA…

文件压缩炸弹,想到有点后怕

今天了解到一个概念,压缩炸弹。 参考: https://juejin.cn/post/7289667869557178404 https://www.zhihu.com/zvideo/1329374649210302464 什么是压缩炸弹 压缩炸弹(也称为压缩文件炸弹、炸弹文件)是一种特殊的文件,它…

ACTable开源框架的使用及异常

介绍 ACTable是对Mybatis做的增强功能,支持SpringBoot以及传统的SpringMvc架构,配置简单,使用方便。主要是自动生成数据库表,直接修改java代码,数据库就会对应的变化,省去在调整数据库表的问题&#xff0c…

笔试刷题(持续更新)| Leetcode 45,1190

45. 跳跃游戏 题目链接: 45. 跳跃游戏 II - 力扣(LeetCode) 这道题思路不难记,遍历数组每个位置,更新下一次的范围,当当前位置已经在当前范围之外时,步数一定得加一,当前范围更新成…

蓝桥杯官网填空题(质数拆分)

问题描述 将 2022 拆分成不同的质数的和,请问最多拆分成几个? 答案提交 本题为一道结果填空的题,只需要算出结果后,在代码中使用输出语句将结果输出即可。 运行限制 import java.util.Scanner;public class Main {static int …

Pandas Series 的学习笔记

Pandas Series 的学习笔记 0. Pandas 简介1. Series 学习1-1. 创建 Series1-2. 索引1-3. 选择数据1-4. 修改 Series1-5. Series 的操作 2. 结论 0. Pandas 简介 想象一下,你有一张超级大的餐桌,上面放满了各种各样的食物。Pandas 就像是这张餐桌&#x…

面试:大数据和深度学习之间的关系是什么?

大数据与深度学习之间存在着紧密的相互关系,它们在当今技术发展中相辅相成。 大数据的定义与特点:大数据指的是规模(数据量)、多样性(数据类型)和速度(数据生成及处理速度)都超出了传统数据处理软件和硬件能力范围的数据集。它具有四个主要特点,通常被称…

【Java】零基础蓝桥杯算法学习——二分查找

算法模板一: // 数组arr的区间[0,left-1]满足arr[i]<k,[left,n-1]满足arr[i]>k;Scanner scan new Scanner(System.in);int[] arr {1,2,3,4,5};int left 0,right arr.length-1;int k scan.nextInt();while(left<right) {//leftright时退出循环int mid (leftrigh…

leetcode(双指针)11.盛最多水的容器(C++详细解释)DAY9

文章目录 1.题目示例提示 2.解答思路3.实现代码结果 4.总结 1.题目 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回…