接口测试思考——脚本编写(一)

序言

接口测试脚本本质是被测试框架调用的,执行脚本时通过测试框架的命令来执行
接口测试脚本=测试库+业务用例
测试框架=运行器+上下文+测试集
框架和脚本的层次关系如下:

层次关系

注:这里的被测系统通过业务用例来请求接口

接口测试脚本的结构如下

脚本结构

测试库

使用框架提供的test对象(test类),来编写测试库,使接口支持关键字驱动、参数驱动

1、接口封装

接口封装是指对接口请求的代码重用,因为要测试一个新接口时,通常是在干净的本地环境(只有基础数据),先模拟用户操作来生成前置数据,再通过前置数据来测对应接口

import yaml
class Api_cmd(object):
    def __init__(self,test):
        self.test=test
        self.URL=test.get_config('http.url')
    def _run_command(self,method,params_yaml,URL=None):
        params = yaml.load(params_yaml)
        if URL==None:
            URL=self.URL
        self.test.jsonrpc(URL, method, **params)
        self.test.assert_http_status_ok('http 状态码正确')
        self.test.assert_jsonrpc_has_result()

        return self.test.jsonrpc_result

class User_cmd(Api_cmd):
    def login(self,account):
         #用户登录,返回sessionId
        params_yaml = """
        account: {account}
        password: '123456'
        """.format(account=account)
        result=self._run_command('user_login',params_yaml)

        return result

通过对象的方法使用封装的接口:

sessionId=User_cmd(test).login(account)

流程封装:对于生成前置数据时常用的流程,可以通过函数来按流程调用多个接口

2、用户上下文

编写一个User类,其类属性包括有session、user_id等等用户相关数据(最好支持序列化)
用户上下文的使用:

user1=User(test,num=1)
user1.sessionId    #编号为1用户的 session
user1.id     #编号为1用户的 user_id
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,282评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 177,249评论 25 709
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,227评论 6 342
  • 文章来自:http://blog.csdn.net/mj813/article/details/52451355 ...
    好大一只鹏阅读 13,032评论 2 126
  • 01 下班的路上看到一篇文章,讲述的是父亲在小孩成长道路上的各种责任和作用。 讲了很多,但这一段对自己的触动比较大...
    春风掠过阅读 3,717评论 0 1

友情链接更多精彩内容