接口自动化测试平台FasterRunner系列(三)- 操作示例

2022-07-25 17:44:35 浏览数 (1)

接口自动化测试平台FasterRunner系列(三)

操作示例

目录

  • 1、Get请求
  • 2、Post请求
  • 3、依赖请求

本篇模拟接口请求链接使用moco生成。

关于moco的部署与使用等,可点击moco系列章节进行查阅。

1、Get请求

接口请求地址:

http://localhost:8083/getdemo?username=admin&password=123456

如图所示:先使用Postman,访问此接口。

GET请求,2个参数username、password

返回数据为admin,123456

1、登录FasterRunner,项目(DEMO)、API模板(module 1)、域名管理(测试环境)、配置管理(测试配置)已创建完成。

域名管理

配置管理

2、API模板,添加接口,接口名称TestGet。

请求方法选择GET,填写请求地址/getdemo

(1)Request:选择params,填写2个参数username、password和所对应的值。

(2)Validate:填写接口断言。

检查content 比较方式equals 预期结果admin,123456

3、执行用例,例如在用例列表里选中此用例,之后选择环境和配置,点击确定执行。

执行结果,接口断言验证通过。

2、Post请求

接口请求地址:

http://localhost:8083/postdemo

如图所示:先使用Postman,访问此接口。

POST请求,2个表单参数username、password

返回数据为admin,123456

1、登录FasterRunner,项目(DEMO)、API模板(module 1)、域名管理(测试环境)、配置管理(测试配置)已创建完成。

域名管理

配置管理

2、API模板,添加接口,接口名称TestPost。

请求方法选择POST,填写请求地址/postdemo

(1)Request:选择表单,填写2个表单参数username、password和所对应的值。

(2)Validate:填写接口断言。

检查content 比较方式equals 预期结果admin,123456

3、执行用例,例如在用例列表里选中此用例,之后选择环境和配置,点击确定执行。

执行结果,接口断言验证通过。

3、依赖请求

有两个接口,接口1执行后返回的数据里有接口2需要用到的请求参数,则执行接口2时,要先执行接口1获取返回的指定数据。

接口1请求地址:

http://localhost:8083/demo?aaa=123&bbb=456&ccc=789

如图所示:先使用Postman,访问此接口。

GET请求,3个参数aaa、bbb、ccc

返回json数据为:

代码语言:javascript复制
{
    "mystatus": "操作成功",
    "mytoken": "eyJhbGciOiJIUzI1NiJ9"
}

接口2请求地址:

http://localhost:8083/demo2

如图所示:先使用Postman,访问此接口。

POST请求,请求头有2个参数Content-Type、mytoken

返回json数据为:

代码语言:javascript复制
{
    "mystatus": "操作成功",
    "mystatusid": "1"
}

发送的json串。

一、登录FasterRunner,项目(DEMO)、API模板(module 1)、域名管理(测试环境)、配置管理(测试配置)已创建完成。

域名管理

配置管理

二、配置管理,修改测试配置

Variables:填写变量(接口1和接口2都有参数ccc,可以设置为公用)。ccc:789

三、全局变量

新增变量名为id,变量值为1,用于接口2进行引用。

四、执行接口1。

1、API模板,添加接口,接口名称Test1。

请求方法选择GET,填写请求地址/demo

(1)Request:选择params,填写3个参数aaa、bbb、ccc和引用所对应的变量值aaa、bbb、

(2)Extract:抽取接口返回值(接口2会调用此变量值)token:content.mytoken

(3)Validate:填写接口断言($token调用抽取的返回值content.mytoken):

检查status_code 比较方式equals 预期结果200

检查content.mystatus 比较方式equals 预期结果操作成功

检查$token 比较方式equals 预期结果eyJhbGciOiJIUzI1NiJ9

(4)Variables:填写局部变量,只在当前接口1用例有效。

aaa:123

bbb:456

2、执行接口1用例,例如在用例列表里选中此用例,之后选择环境和配置,点击确定执行。

执行结果,接口断言验证通过。

五、执行接口2。

1、驱动代码,新增get_sleep()函数

代码语言:javascript复制
# debugtalk.py
import time
 
# 等待
def get_sleep(n):
  time.sleep(n)

2、API模板,添加接口,接口名称Test2。

请求方法选择POST,填写请求地址/demo2

(1)Header:请求头($token调用抽取接口1的返回值content.mytoken):

Content-Type:application/json

mytoken:$token

(2)Request:选择json,json串里引用所对应的变量值id 、ccc

json串:

代码语言:javascript复制
{
    "id": "$id",
    "username": "test",
    "password": "123456",
    "ccc": "$ccc"
}

(3)Validate:填写接口断言。

检查status_code 比较方式equals 预期结果200

检查content.mystatus 比较方式equals 预期结果操作成功

检查content.mystatusid 比较方式equals 预期结果1

(4)Hooks:设置hook机制。

测试之前执行的方法调用驱动代码脚本里的get_sleep()函数,调用此函数方法是${get_sleep(2)}

含义为:当接口1执行完成后,等待2秒,之后再执行接口2。

3、测试用例,新建分组TestSuite,之后添加用例,选择配置、接口1、接口2,保存为测试集Case1。

4、执行组TestSuite,执行方式为异步执行。

5、在“历史报告”下,查看报告执行结果,测试结果为成功。

打开测试报告,执行2个接口(先执行Test1,之后执行Test2)。

接口断言验证通过,例如Test2。

0 人点赞