接口自动化测试平台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。