基于RF框架的接口自动化

本文基于robot framework框架,支持http api,robot framework如何使用请参考光毅的另一篇文章

基于RF框架的接口自动化

(脚本做了一些修改和更新,更新内容请看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  阅读(1014)  评论(0编辑  收藏  举报

导航