基于RF框架的接口自动化
本文基于robot framework框架,支持http api,robot framework如何使用请参考光毅的另一篇文章
(脚本做了一些修改和更新,更新内容请看part2)
本文主要讲,如何分离测试用例和参数
目标:缩减用例编写成本;提高用例可维护性
参数通过csv表格编写和维护
背景(可不看)
用robot framework编写用例的构成:用例+keyword+json结构参数
keyword: 处理逻辑
json文件:存请求数据和预期返回数据
基于如上背景,我们写一条用例,需要有一个用例代码,一个json的请求和预期返回
例如,我们的请求有10个参数,一个参数编写五种不同的测试值,我们需要编写50个用例,写50个json请求和返回
上述过程种,存在大量重复工作,且不方便维护,如果请求增加字段,则需要修改全部json体
所以想到了用例和参数分离的方式:模版用例+参数,生成可执行用例
效果:请求有五种预期返回码,只需要写一个json请求模版和5个预期返回模版
使用步骤
(流程图在最后)
(文章末尾更新了使用步骤,可以直接看简化步骤,细节可以回来看这里)
1.下载代码到本地(robot framework如何使用请参考文章开头附的文章)
link: https://git.garena.com/arrow.zhang/httpapiautotest.git
2.编写一个成功用例(包含用例和一个json请求体和一个预期json返回体)
3.GenerateTest.py是生成,robot用例的脚本,可以copy一个或者在上边改
4.需要修改内容,是步骤4和步骤5
将TestCaseHeader和TestCaseBody替换成自己用例(写用例时也按照这个格式写),红框处为替换参数名字需要保持不变
5.填写apilist参数,参数是一个多元数组,一个值表示一个api,一个api包含了api_name,json_file_path,parameter_file_path三个参数
api_name:API的名称,决定了你生成robot文件的名称
json_file_path:存储json请求模版和json预期返回模版的路径
parameter_file_path:参数文件的路径
(到这里代码部分的逻辑已经修改完成,下边讲参数文件的编写规范)
6.参数文件编写规范
格式:csv格式,名称和apilist里的名称一致,在file文件夹下
参数包含六列:
case_id: 数据的键值,不可重复
case_name: 用例名称
request_template: 请求的模版名称(与json文件中的模版对应)
request_key:当前需要测试的字段
request_value: 测试字段的值
response_exp: 预期的返回模版
例如:t002号用例,替换请求字段里的signature为“SDFGHJKLTYUIOFGHJK”,预期结果的模版名称是E103 response
tips:
给request_value做了一些自定义的判断:
0XRight表示正确请求,不需要替换参数
0XMissing 表示没有这个字段
int–开头 表示这个字段要传int类型
PS:参数文件是要手动编写,并放入到对应目录下
整理流程图:
完成了上边所有步骤后,后续增加和修改用例,只需要维护csv的表格
如果请求体结构有变化,只需要修改模版文件的json结构体就ok
功能还没那么完善,有什么意见或者建议请联系我~~~如果文档看不明白也请私戳我~
~~~~~~~~~~~~~~~~~~~~~~~~(以下是新修改内容,7月3日)~~~
1.生成脚本做了修改,参数文件格式做了修改
https://docs.google.com/spreadsheets/d/1T48OAyGviZpF3exAQlVZ393gP8H_kU7qN8MHYsyXqo8/edit?usp=sharing
新支持内容:
1.请求可以修改多个字段
2.支持不同格式
3.返回校验,不用写Json返回体,直接输入预期校验的key和value即可
2.简化了接入步骤:
a.下载代码
https://git.garena.com/arrow.zhang/httpapiautotest.git
(因为不能直接设置pulich权限,需要权限的同学私戳我就好)
b.写一个Json请求体,(参数均正确)
c.按照上述格式编写用例
d.填写,Json请求体文件路径,用例csv.文件路径,run即可
生成用例脚本如下图路径
keyword路径(处理请求参数替换和返回验证逻辑)
posted on 2021-06-18 11:39 xingxing666 阅读(1031) 评论(0) 编辑 收藏 举报