使用Apifox自动化测试接口
概述
下载: https://www.apifox.cn/ (官网)
Apifox支持API 文档、API 调试、API Mock、API 自动化测试等等。
,这里主要分享一下,使用Apifox,自动化测试用例,测试套件的实际应用基本场景。
软件测试工程师,编程能力不足的,可以借用如APifox,postman等工具,来慢慢落实和提升自动化测试能力。
一、工具准备
1.1 apifox下载安装
可以直接进入官网,根据自己的操作系统选择下载安装包( https://www.apifox.cn/)
- 点击安装包傻瓜步骤安装,设置本地按照路径,添加桌面快捷启动
- 打开安装完成的Apifox软件,登录(我直接用的微信登录),选择新增或者使用默认的团队,查看示例项目
- 查看示例项目,熟悉主要模块
1.2 新增项目
查看属性了示例项目,自己新建自己的测试项目。
- 点击左上角,项目名称"示例项目"打开管理界面。
- 点击新增项目,输入项目名称,设置为私有类型(参考gitlab的项目类型,建议私有)
1.3 接口导入(Swagger )
自己的接口测试项目,一般有接口管理,Apifox工具支持直接拉去Swagger接口文档,自动同步接口和模型。(当然,也可以手动新建接口)
- 进入新建的项目后,点击项目设置
- 选择数据管理-导入数据,设置数据源
- 设置项目提供的seagger接口玩的上面的地址,设置自动导入频率,名称即可
- 点击导入,会显示导入接口和模型等数量,确认即可,接口管理有了导入的接口即表示成功
二、接口调试
我们从项目导入swagger接口成功后,可以直接请求调试接口
2.1 url域名或ip地址设置
一般项目可以配置多环境地址,默认http://127.0.0.1,我们可以改成项目实际测试环境地址或域名
2.2 基本参数请求
设置完url域名地址,就可以直接选择接口,设置参数,点击多种(get/post/put/delete等)接口请求
2.3 结果断言判断
http接口请求结果,除了http协议本身基本的格式,如200状态码检验,Apifox导入了数据模型,还会自动校验结果数据基本类型,我们自己也可以对返回的数据data做判断校验,断言可以进行结果测试结果统计起来。
eg:
我们可以要求接口规范统一,正确的接口返回必须code=0,
我们就可以设置提取表达式,$.code,断言条件选择和设置 “=”、“0” 就可以了。
三、变量和参数
我们通过Apifox,导入了swagger接口,进行了基本的接口请求调试,但是做post新增数据时,字段有唯一性校验的,需要每次请求前改动,不利于后续自动化多次测试,所以我们可以设置工具支持的特定格式的动态值。
3.1 动态变量
- 点击打开动态值页面,查看动态变量表达式格式,基本格式为 {% mock ‘类型’ %}
- 根据动态变量表达式,自定义自己需要的 动态变量
eg:{% mock ‘string’, ‘abcdefg123’, 5, 10 %}
3.2 全局变量和参数
- 我们在做自动化测试时,重复性的参数可以设置为全局变量。
eg:randomStr == {% mock ‘string’, ‘abcdefg123’, 5, 10 %} - 将自己需要的 动态变量 存为全局变量,在接口body参数中应用。
eg: {{randomStr}} - 其他类型的动态值,同样格式
3.3 环境变量
在2.1接口调试中,就已经设置过基本的url域名,设置的位置,其实就是在环境变量中。
- 打开又上角的环境管理界面
- 不同环境的前置url,基本变量设置
- 切换不同环境,应用环境变量调试接口,引用格式同全局变量一样
eg:{{user}}
四、自动化测试
在学会使用 二的接口调试和三的变量和参数设置基础上,我们可以开始试着设计编写 自动化测试用例和组装自动化测试套件了。
4.1 自动化测试用例
为了便于管理,和测试套件的组装,我们新建测试用例前,可以先按照模块新建分组
- 点击"自动化测试模"块,选择"测试用例"导航栏
- 点击"+",“新增分组”
- 输入名称name,默认父级为更目录,确认
- 点击"+",“新建测试用例”,输入用例名称,选择分组,优先级,确认
- 点击左侧分组,筛选出刚刚新增的测试用例,点击设置
- 配置测试用例的步骤,选择从之前swagger导入生成的【接口用例】中导入
- 配置步骤中参数和断言,和之前的二的接口调试和三的变量和参数设置一样
- 执行自动化测试用例,可设置执行参数
4.2 自动化测试套件
在新建多个测试用例后,我们可以新建测试套件,将测试用例放在测试套件里面,批量执行,增加自动化测试效率,以及结合模拟测试场景。
- 点击"自动化测试模"块,选择"测试套件"导航栏
- 点击"+",“新增分组”
- 输入名称name,默认父级为更目录,确认
- 点击"+",“新建测试套件”,输入套件名称,选择分组,优先级,确认
- 点击左侧分组,筛选出刚刚新增的测试套件,点击设置
- 配置测试套件,添加新建好的多个测试用例
- 执行自动化测试用例,可设置执行参数
- 生成测试报告,查看报告中的测试统计结果
tips:前端步骤和测试用例步骤类型,截图略。
4.3 自动化测试执行场景
4.3.1 接口自动化测试场景原则
- 数据是否独立:
数据是否独立决定了测试环境对自动化案例的影响程度,数据独立性越高则环境变化造成的影响越小。 - 测试案例是否形成了闭环:
测试案例能否形成闭环决定了该条测试案例是否可以被重复大量执行。 - 测试数据的参数化:
测试数据参数化决定了我们的案例复用程度和后期的维护成本,对等价的数据进行参数化设置不仅有助于我们覆盖大量测试数据。
同时当程序发生改变时,我们可以简单快捷的修改测试数据。
4.3.2 推荐自动化测试最小闭环流程设计法
- 模块分类,不同模块接口测试用例先分组创建
- 各个模块的增删改查接口做一个测试套件流程,提取变量,做成闭环
- 测试数据参数化,全局化