App自动化测试怎么做?实战分享App自动化测试全流程

2023-05-16

一、什么是app测试?什么是app自动化测试?

概念:所谓app测试也称之为移动测试,通俗易懂的理解就是测试我们平时手机使用的程序。那什么是app自动化测试呢?

通常情况下是随app产品不断迭代更新,给测试⼈员也增加了测试⼯作量,特别是⼤量繁琐的回归测试。⾃动化测试是应对产品不断迭代更新的辅助测试⼿段(主要是针对回归测试),最终⽬的是为了保证产品质量。简而言之就是自动化的有点就是可重复、效率高,增加软件信任度。

下载300G软测学习资料包【视频教程+PPT+课件+项目源码】

编辑切换为居中

添加图片注释,不超过 140 字(可选)

二、app测试的主要内容有那些

1、App功能测试(也叫App手工测试)APP

APP功能测试是指测试你这个APP的所有功能点是否能够验证通过。APP功能测试的测试用例设计需要结合产品需求和开发设计文档。这里以测试微博APP为例:

1. 发布微博,从界面上看有文字长度,是否添加图片,是否有话题,是否有@别人等等。2. 发布微博的操作是否符合用户体验,选择照片,选择要@的人是否符合人类的认知3. 发布微博这样一个动作肯定是和服务器交互的,那么需要考虑到各种网络因素4. 发布微博是调用哪个api?有哪些参数?失败了会怎么样?是否会自动重试?5. 发布微博的控件是否有native的还是webview,还是混合的结构?6. 考虑一些android特别的交互,比如home,menu,长按home,发布到一半来电,关机,待机等7. 发布微博,从java而言调用了什么方法做请求的?httpclient?怎么判断成功,失败了又是什么逻辑

2、App兼容性测试

app兼容性要考虑的点主要包括手机型号、手机的系统版本、及屏幕分辨率(覆盖主流)除了这三个重点考虑的点还需要考虑网络(2G\3G\4G\5G\WIFI)的兼容性以及手机硬件(手机按钮及耳机蓝牙设备)兼容性和手机软件(定位、地图app等)兼容性。

3、App安装、卸载、升级

app安装需要考虑的点:在不同手机、不同系统版本上安装、从不同渠道进行安装、安装时出现异常(关机、断网)恢复后能不能正常安装,安装时内存不足、安装时手动取后再安装、运行时覆盖安装。

app卸载需要考虑的点: 正常卸载、运行app时卸载、取消卸载、卸载时关机、卸载之后遗留数据检查等

app升级需要考虑的点:临近版本升级、跨版本升级、不同渠道升级、升级提醒成功

4、App交叉事件测试

app的交叉事件测试主要是指多个应用之间是否有冲突,比如使用app时拔打电话、收发短信、连接耳机或蓝牙设备、旋转屏幕、电量告警、插拔充电器等等

5、PUSH推送测试

当前手机app都会有push推送功能,而在web系统中是没有所,所以push也可以做为一个专项来进行测试,比如测试push的业务规则、push推送的用户是否正确、push推送消息的跳转、以及push推送关闭后是否正常等。

6、App稳定性测试

由于app软件是安装在手机的操作系统之上的,为了保证app能够在长时间内运行操作不会出问题,所以需要做稳定性测试,稳定性测试需要用到monkey工具,monkey工具是基于命令行的方式运行的,通过这个工具长时间来操作对应的app,以此来检测app会不会出现假死(ANR)或者崩溃的问题。

7、App弱网测试

弱网测试是指手机app在网络不好的场景下,运行操作app,以此检测app会不会出现异常闪退、假死、以及异常提示信息等各种情况,弱网测试的重点是要模拟出各种复杂的弱网环境,一般都会借助于一些工具来模拟弱网环境,比如fiddler、charles等工具。

8、App性能测试

app的性能测试主要是指app运行操作过程当中,监测当前手机系统的一些性能指标,以此来确定app的性能是否会影响到用户的体验。app的性能指标主要包括以下几个:CPU、内存、启动速度、电量、流量以及流畅度。

三、App测试如何搭建环境

1、java sdk

(1)下载,安装

(2)配置 JAVA_HOME(配置下载好的java路径,比如:C:\Java\jdk1.8.0_45,配置在我的电脑右击属性——高级系统设置——环境变量——系统变

(3)配置PATH(找到系统变量里面的path,双击——新建,复制路径bin,比如:%JAVA_HOME%\bin)Windows 10 的系统举例

2、Android SDK

(1)解压(百度搜索Android SDK下载,然后看别人的博客Android SDK的下载与安装 - 菜鸟学飞ing - 博客园,官网不能直接下载)

(2)配置ANDROID_HOM(配置Android路径,比如:D:\android-sdk_r24.4.1-windows\android-sdk-windows)根据自己的位置配路径。

(3)配置PATH两个路径(比如:D:\android-sdk_r24.4.1-windows\android-sdk-windows\tools,D:\android-sdk_r24.4.1-windows\android-sdk-windows\platform-tools)

3、虚拟机安装

(1)使用夜神模拟器或其他模拟器(把Android里的platform-tools文件里的adb.exe和模拟器里面的adb.exe和nox_adb.exe都替换成platform-tools里,nox_adb需要重名后在替换)

(2)使用真机

(1)手机通过usb线连接电脑

(2)在手机上打开文件传输(通知栏,手机正在充电)

(3)在电脑上会发现多了一个cd驱动器,里面是手机驱动

(4)安装驱动,电脑的设备管理器中就可以看到型号了

(5)开启开发者模式:手机——设置——关于手机——版本号(多次点击)

(6)打开usb调试;手机——设置——开发者选项——usb调试(打开)

环境搭建

四、app测试的ADB服务

1、定义

就是一个 Android Debug Bridge 安卓调试桥

即包含ADB服务,也包含了与服务对应的Client

2、关系

会在电脑上创建出来一个服务(ADB服务)

手机连上电脑后,都会与服务建立连接

要想发送指令给手机, 需要把指令发送到服务中。

3、作用

通过命令行去操作手机

4、主要命令

a:服务 (如果发现代码连不上手机了)

adb kill-server

adb start-server

b:查看设备

adb devices

c:进入手机终端

adb shell

d:获取信息

adb shell getprop ro.build.version.release 获取手机android版本

adb shell dumpsys window windows | findstr mFocusedApp 获取手机当前运行的程序和界面的名称

e:文件传输

adb push 电脑上的文件 手机上的位置

adb pull 手机上的文件 电脑上的位置

f:软件安装卸载

adb install 电脑上的apk文件路径 安装应用

adb uninstall 应用的包名

g:获取其他信息

adb shell am start -W 包名/.启动名

五、自动化测试工具

一般我们去做app自动化会选取 Appium测试工具

优点:支持的语言多、支持的平台多

环境搭建

安装appnium的程序

在python中安装 Appium-Python-Client

安装selenium和appium的客户端

安装被测试app六、编写python自动化代码

1. 连接设备

组装一个字典,注明平台、系统版本、名称

#注明要打开的应用和界面的名称

1from appium import webdriver

# server 启动参数

1.desired_caps = {}
2.desired_caps['platformName'] = 'Android'
3.desired_caps['platformVersion'] = '5.1'
4.desired_caps['deviceName'] = '192.168.56.101:5555'
5.desired_caps['appPackage'] = 'com.android.settings'
6.desired_caps['appActivity'] = '.Settings'

# 从appium库里面导入driver对象

1.# driver = webdriver.Remomte('appnium程序的地址','一个字典,要获取设置的要求')
2.driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)

2. 执行操作

1.# driver.xxx
2.# element = driver.find_element_by_xx()
3.# element.xxx

3. 退出

1.driver.close_app()
2.driver.quit()

七、风险评估和分析事项自动化测试的主要风险分析主要有一下几点:

(1)测试用例的覆盖率。测试人员开发的测试用例覆盖率是否足够全面,影响了最终的测试效果和测试执行效率。

(2)测试结果的准确程度。测试结果的准确度直接影响最终产品的质量,以及后续对项目进行二次改动和调试的工作难度。

(3)自动化代码维护。因为自动话的脚本需要进行编写和维护这个时间精力成本比较大。(一些数据和关键字驱动的自动化测试框架,应该尽可能的减少代码的更改和优化量。自动化框架的搭建和开发应该尽可能使用面向对象的编程思维进行搭建)。

(4)版本开发以及测试的时间进度。一般如果项目比较稳定,功能更新和迭代周期较长的,都建议选择自动化测试,可以提高测试效率并且高精度的保障产品质量。

(5)开发对控件元素增修改的程度。需开发人员尽可能地用name元素,并且尽量保证开发结果和UI设计保持一致,不要大幅度的修改。这样做的目的是测试工程师能够根据需求中的设计做准确性测试,也方便测试工程师编写自动化脚本提高工作效率。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

App自动化测试怎么做?实战分享App自动化测试全流程 的相关文章

  • Actor的原理

    http www cnblogs com netfocus p 3365166 html 先从著名的c10k问题谈起 有一个叫Dan Kegel的人在网上 xff08 http www kegel com c10k html xff09 提
  • 【车载开发系列】CAN总线帧种类介绍篇

    车载开发系列 CAN总线帧种类介绍篇 CAN总线帧种类介绍篇 车载开发系列 CAN总线帧种类介绍篇一 CAN总线当中帧的种类二 五种类型帧用途说明三 数据帧的组成1 xff09 帧起始2 xff09 仲裁段3 xff09 控制段4 xff0
  • VS2013 C++ Rest SDK 环境配置方法

    简介 C 43 43 REST SDK 是 Microsoft 的一个开源跨平台项目 xff08 使用 MIT 开源协议 xff09 其使用大量现代异步 C 43 43 API 实现了一个基于 HTTP HTTPS 协议的 服务端 客户端
  • 【日常】FIFA历年四强

    世界杯 xff0c 全称 xff1a 国际足联世界杯 xff08 FIFA World Cup xff09 世界杯每四年举办一次 xff0c 任何国际足联会员国 xff08 地区 xff09 都可以派出代表队报名参加这项赛事 从1930年第
  • 【日常】圣诞节、颜色⛄

    2022年圣诞节到来啦 xff0c 很高兴这次我们又能一起度过 关于圣诞节 x1f384 xff0c 大家想到什么颜色 xff1f x1f98c x1f381 x1f385 x1f525 demo online https codepen
  • 【笔记】openwrt - full cone NAT(全锥NAT)、解决“arp_cache: neighbor table overflow!”

    最近安装了比特彗星 xff08 bitcomet xff09 后 xff0c 老是收到警告说日志的接收超过每秒上限了 一看日志 xff0c 好家伙 xff0c 一堆的kern info kernel 194004 157620 neighb
  • 【记录】ChatGPT使用记录

    文章目录 2023年02月08日数学哲学Java其他 2023年02月09日ChatGPT网络 2023年02月10日算法组网 2023年02月11日ChatGPT xff08 优化目标 xff09 DOS 2023年02月15日影评 xf
  • 简历模板百度网盘自取

    链接 https pan baidu com s 1ptO hJs69ZA8kwdjRUwc7A 提取码 sibc 复制这段内容后打开百度网盘手机App xff0c 操作更方便哦 来自HHppGo的分享
  • 【工具】笔记软件测评(简单)

    介绍 笔记软件测评 印象笔记 开源 markdown xff08 不好用 xff09 本地存储 臭名昭著 xff0c 被资本搞烂的理想 notion 开源 本地存储 数据导出 xff1a PDF HTML Markdown amp CSV
  • 【工具】logseq 使用分享

    Github https github com logseq logseq 我用 logseq 记录的学习笔记 xff1a 战争历史 https lawsssscat github io logseq worldwar 三月八日国际劳动妇女
  • 谈一谈搜索引擎是如何跟踪你、出卖你的

    文章目录 跟踪结果点击跟踪关键词跟踪 other 跟踪 结果点击跟踪 以b网为例 xff0c 当我们搜索关键词 haha 后 xff0c 搜索结果链接是这样子的 xff1a https www baidu com link url 61 X
  • 整理alacritty使用笔记

    github xff1a https github com alacritty alacritty features xff1a https github com alacritty alacritty blob master docs f
  • 整理windows terminal使用笔记

    github xff1a https github com microsoft terminal 之前这篇文章写了windows中powershell的美化 xff0c 过程中安装了windows terminal 这里记录windows
  • 区分/区别:su、su -、sudo、sudo su -

    su和su 的区别 su 不设置环境变量su 设置环境变量 su 和sudo su 的区别 su 输入root用户密码sudo su 输入当前用户密码 xff08 前提 xff1a 当前用户在 etc sudors或 etc sudors
  • 整理ps使用笔记

    尽管使用ps只需要记住常用命令 xff1a ps aux ps ef 并且理解输出的列含义即可 但不理解命令的含义 xff0c 用起来总有种空虚感 下面研究一下 文章目录 介绍BSD默认simpleaxT r listoutput 总结 介
  • SSO、CAS、OAuth、OIDC

    参考 简单了解概念 xff1a https www bilibili com video BV1XG411w7DN 简单了解操作 xff1a https www bilibili com video BV1334y11739 openid
  • 整理现有的wiki私服项目

    五一技术创作马拉松 https bbs csdn net topics 614845804 https www csdn net qc 文章目录 核心功能现有项目wikijsBookStackmediawikiTiddlyWikigollu
  • 蓝桥杯电子类嵌入式(STM32G431)备赛学习记录(二)——LCD

    02 LCD屏 蓝桥杯正式比赛时会给参赛选手一个数据包 xff0c 里面会有LCD屏相关配置文件和库函数 xff0c 所以这里的例程相当于只是一个代码移植 具体LCD屏的学习可以参考火哥的视频 我们打开之前的工程文件以及 ioc文件 xff
  • Vscode如何设置代码保存后自动格式化

    方法一 xff1a 1 打开vscode xff0c 点击设置 2 搜索框输入格式化 xff0c 如图勾选这三个选项 方法二 xff1a 1 打开设置 xff0c 搜索框不要输入东西 xff0c 点击如图标识 2 点击后 xff0c 会打开
  • 解决桌面右键文件夹卡死的问题

    新买的电脑莫名其妙的右键文件夹就会卡死 xff0c 弄了好几天 xff0c 终于弄好了 xff0c 记录一下 原因大概率是因为右键选项中的一些第三方软件功能异常造成的 xff08 极大概率是百度云或者QQ导致 xff09 xff0c 使用S

随机推荐

  • wsl2与vscode的安装

    网页搜索wsl xff0c 可以看到微软的wsl官方文档 1 安装 开始菜单搜索功能 xff0c 找到启用或关闭Windows功能 勾选适用于linux的windows子系统 xff0c 和虚拟机平台 确定 xff0c 重启 打开微软商店
  • wsl2常用工具的安装及gitlab上搭建仓库

    1 安装wsl2 安装vscode 2 安装相应工具 apt install cmake apt install make apt install g 43 43 3 编写一个函数hello c 想要编译需要创建一个CMakeLists t
  • wsl2里java离线安装方法

    链接 xff1a https pan baidu com s 1azeWBSkaFbPXyfZX 5lAjA 提取码 xff1a 0312 1 把离线安装包放在任意路径下 例如 xff1a usr java下 2 解压tar xzvf op
  • 数据库SQL--数据表与索引(二)

    一 数据表 xff08 xff09 数据表是数据库中最基本的用于存储数据的对象 xff0c 可以认为数据表是以行和列组成的二维表格 xff0c 通常把行称为记录 xff0c 列称为字段 SQL中的常用数据类型 字符型数据 xff1a 大小写
  • Gstreamer学习(一)——安装Gstreamer

    Gstreamer学习 Gstreamer官方网站为https gstreamer freedesktop org 1 安装Gstreamer 官方文档 xff1a https gstreamer freedesktop org docum
  • Gstreamer学习(二)——播放一个视频

    1 参考范例 官方文档 include lt gst gst h gt int main int argc char argv GstElement pipeline GstBus bus GstMessage msg Initialize
  • 菜鸟笔记之计算机网络(3)

    万维网 了解万维网概念相关概念 声明 xff1a 以下是看的视频并结合网上资料所记的笔记 xff0c 侵权请联系删除 可能会有一些错误 xff0c 发现了会修改 了解万维网 概念 万维网 xff08 World Wide Web xff0c
  • STM32串口中断接收实验

    STM32串口中断接收实验的详细说明 准备代码实现总结 准备 材料 xff1a STM32F407ZGT6最小系统板 xff0c 串口1通过跳线帽连接到了CH340上 需求 xff1a 从电脑向板子的串口1发送一个字符串 xff08 以回车
  • 使用C++将网络字节流转为数字(大端与小端区别)

    首先需要了解下大端和小端存储的区别 xff1a 大端方式 xff1a 用存储器的低字节地址单元来存放数据的最高字节 小端存放 xff1a 用存储器的低字节地址单元来存放数据的最低字节 如下图所示 xff1a 网络上都是以字节流的方式传输数据
  • 响应式移动Web测试题

    第一题 下列选项中对bootstrap中的能让元素只在小屏设备隐藏的类是 B A xff1a hidden xs B xff1a hidden sm C xff1a hidden md D xff1a hidden lg 解析 xff1a
  • ROS path [0]=/opt/ros/melodic/share/ros这种错误所有的可能性

    1 没有在ros workspace目录下source devel setup bash 2 roslauch启动节点时 xff0c launch文件包名打错了也会出现这个错误提示 ERROR cannot launch node of t
  • 【curl】 Linux上用curl 查看请求头和响应头

    curl xff0c 全称CommandLine URL 或 CommandLine Uniform Resource Locator xff0c 顾名思义 xff0c curl命令是在命令行方式下工作 xff0c 利用URL的语法进行数据
  • 【开启新阶段】进入本科末段学习的计划

    简单总结 xff1a 经过本科四年的学习 xff0c 博主只能说取得了一个差强人意的结果 xff0c 但生活总是这样 xff0c 难以尽善尽美 在进入大四下半阶段后 xff0c 准备开始新的学习阶段 xff0c 不再像之前一样有着需要自己不
  • 基于Matlab的Robotics Toolbox工具箱的机器人仿真函数介绍(运动学)

    前言 随着我们了解到机器人如何建立运动学模型和动力学模型之后 xff0c 我们可以使用Matlab中的仿真工具箱内来对模型的准确性进行验证 xff0c 并且可以通过内置的函数进行简单的轨迹规划和可视化观察 xff0c 本节涉及到的工具箱是M
  • 基于Matlab的Robotics Toolbox工具箱的机器人仿真函数介绍(空间位姿表示与动力学)

    文章目录 前言一 空间位姿描述1 二维空间2 三维空间3 旋转的不同表示方法1 xff09 欧拉角2 xff09 RPY角3 xff09 双向量表示4 xff09 轴与旋转角5 xff09 四元数表示 二 动力学1 动力学参数2 正动力学函
  • 平面2R机器人的运动学/动力学建模实例

    文章目录 前言平面2R机器人1 问题假设2 建立运动学模型1 xff09 DH参数法2 xff09 指数积方法3 xff09 雅可比矩阵 xff08 微分变换法 xff09 4 xff09 逆运动学求解 xff08 几何法 xff09 3
  • 2023最新jmeter接口测试入门到精通实战讲解,手把手教学

    一 线程组 线程组元件是任何一个测试计划的开始点 在一个测试计划中的所有元件都必须在某个线程组下 所有的任务都是基于线程组 xff1a 通俗理解 xff1a 线程组 xff1a 就是一个线程组 xff0c 里面有若干个请求 xff1b 线程
  • 2023最新全方面了解接口自动化,看完还不会你锤我

    一 自动化分类 现在流行的是金字塔状的分层测试 xff0c 将测试从上到下分为UI测试层 接口测试层 单元测试层三层 在传统的UI自动化的基础之上更多实施基于代码的低级别自动化测试 xff0c 而不仅仅通过用户界面进行端到端的测试 按照测试
  • pytest接口自动化测试框架搭建

    fixture 特点 xff1a 命令灵活 xff1a 对于setup xff0c teardown可以省略 数据共享 xff1a 在conftest py配置里写方法可以实现数据共享 xff0c 不需要import导入 xff0c 可以跨
  • App自动化测试怎么做?实战分享App自动化测试全流程

    一 什么是app测试 xff1f 什么是app自动化测试 xff1f 概念 xff1a 所谓app测试也称之为移动测试 xff0c 通俗易懂的理解就是测试我们平时手机使用的程序 那什么是app自动化测试呢 xff1f 通常情况下是随app产