APP自动化测试保姆级教程

本文介绍了 APP 自动化测试的基本原理和流程,并提供了一份从入门到精通的教程。

用 Apifox,节省研发团队的每一分钟

APP自动化测试保姆级教程

免费使用 Apifox

相关推荐

最新文章

API

一体化协作平台

API 设计

API 文档

API 调试

自动化测试

API Mock

API Hub

立即体验 Apifox
目录

APP 自动化测试

什么是 APP 自动化测试?

我们先来说说什么是测试吧,当我们完成一个需求之后,这个需求可能是接口、硬件、机器、APP、客户端等等,当完成它们之后,都需要经过测试这个环节,这相当于给你的需求设置了一道关卡,保证了你这个需求的质量。

但是毕竟测试是需要花费大量人力精力的,所以我们可以让机器去为我们做这件事,毕竟机器是不会累的,让机器去做这件事,能大大提高整体的测试效率,这就是 自动化测试。

为什么要做 APP 自动化测试

如果不适用 自动化测试 ,可能会造成以下情况:

  • 重复性的测试,在多次构建中运行的测试
  • 容易导致人为错误的测试
  • 需要多个数据集的测试
  • 经常使用的功能,引入了高风险条件
  • 不可能手动执行的测试
  • 在几个不同的硬件或软件平台和配置上运行的测试
  • 手动测试时需要花费大量精力和时间的测试

APP 自动化测试风险分析

  • 测试用例覆盖率:覆盖率很重要,它与测试效率挂钩,覆盖率有人说应该 100%,有人说应该50%,看团队吧
  • 测试结果准确度:准确度一定要保证做到近乎全绿才行
  • 自动化代码维护:可维护性是很重要的一个指标,代码应该要可维护性高些
  • 版本开发和测试时间进度:时间要规定好,这样才能保证效率
  • 开发对控件元素增修改的程度:修改尽量不要太大,如果太大的话,那要大改对应的测试用例

APP 自动化测试实践

环境准备

我们大致需要以下环境:

  • Jdk 1.6 以上
  • Python 2.7 以上
  • Appium

Appium 是一个开源测试自动化框架,可用于本地、混合和移动web应用程序。它使用 WebDriver 协议驱动 iOS、Android 和 Windows 应用程序。

Appium 

启动 Appium

我们需要启动 Appium。

Appium 启动页面

脚本代码编写

  • platformName:这里是 android 的 apk
  • deviceName:手机设备名称,通过 adb devices 查看
  • platformVersion:android 系统的版本号
  • appPackage:apk 包名
  • appActivity:apk 的 launcherActivity
  from appium import webdriver
  desired_caps={
    'platformName': 'Android',
    'deviceName': '127.0.0.1:62001',
    'platformVersion': '5.0',
    'appPackage': 'com.ss.android.article.news',
    'appActivity': 'com.ss.android.news.activity.MainActivity'
  }
  driver= webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
测试报告

使用 Apifox 进行 API 自动化测试

API 也是 APP 不可或缺的一部分,所以我们需要对 API 进行测试,我们可以使用一款非常方便的 API 工具 —— Apifox 来进行测试。

创建几个请求

我们需要创建几个请求,在请求中的前置脚本或者后置脚本中,进行脚本代码的编写,Apifox 默认的脚本语言是 javascript。

在填入 路径、方法、名称 之后,我们需要进行 自定义脚本 的编写。

创建请求

自定义脚本的编写

我们可以发现 Apifox 已经为我们准备了很多校验脚本代码的模板。

校验脚本代码的模板

比如以下的脚本代码:

 // 判断状态码是否为 200
pm.test("Status code is 200", function () {
        pm.response.to.have.status(200);
      });
// 判断 body 是否包含目标字符串
pm.test("Body matches string", function () {
        pm.expect(pm.response.text()).to.include("string_you_want_to_search");
      });
// Body json 检查
pm.test("Your test name", function () {
        var jsonData = pm.response.json();
        pm.expect(jsonData.value).to.eql(100);
      });
// body 字符串检查
pm.test("Body is correct", function () {
        pm.response.to.have.body("response_body_string");
      });
// 修改 body
pm.response.setBody({});
// header 是否包含 content-type
pm.test("Content-Type is present", function () {
        pm.response.to.have.header("Content-Type");
      });
// 响应时间低于 200ms
pm.test("Response time is less than 200ms", function () {
        pm.expect(pm.response.responseTime).to.be.below(200);
      });
// post 请求成功
pm.test("Successful POST request", function () {
        pm.expect(pm.response.code).to.be.oneOf([201,202]);
      });

我们可以为这个请求设置多个测试校验,比如我这里加了两个:

  • 检查返回状态码是否为 200
  • 请求耗时是否少于 200ms
设置多个测试校验

点击保存,我们可以先运行一下试试,可以发现,我们得到想要的预期效果,校验也通过了。

运行

Apifox 自动化测试

试想一下,如果有五个接口呢,不可能一个一个去发送吧~所以我们需要用到 Apifox 的自动化测试功能。

接口

我们需要进入自动化测试界面,然后导入对应的接口。

导入对应接口

最后填写环境、循环数、延迟数等等,进行运行。

填写信息

得出运行结果,可以查看耗时,成功数,失败数等报告参数。

测试报告

关于Apifox

欢迎体验一下,完全免费的哦:在线使用 Apifox

Apifox 是一体化 API 协作平台,可以实现 API 文档、API 调试、API Mock、 API 自动化测试,是更先进的 API 设计/开发/测试工具。

Apifox 提供了一种全面的 API 管理解决方案。使用 Apifox ,你可以在统一的平台上设计、调试、测试以及协作你的 API,消除了在不同工具之间切换和数据不一致的问题。

个人使用体验还是不错的,推荐使用~