• 基于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路径(处理请求参数替换和返回验证逻辑)

  • 相关阅读:
    Python-枚举
    Python-函数
    Python-装饰器(语法糖)上下五千年和前世今生
    Python-全局函数(内置方法、内置函数)
    Python-时间模块-time
    Python-随机模块-random
    Python-维护排序好的序列模块-bisect
    需求推动技术的产生
    RBF神经网络
    聚类算法的衡量指标
  • 原文地址:https://www.cnblogs.com/xingxing666/p/14898873.html
Copyright © 2020-2023  润新知