HttpRunner学习笔记~搭建测试框架

最近看到了一个接口测试框架HttpRunner,这是一个由国人编写的开源测试框架。这个框架支持的功能,可以说满足了我之前对于接口测试框架的设想。测试用例编写、执行操作都非常简单,又支持参数函数化。这个框架不仅可以用来进行接口测试,还能够用于性能测试。


使用技术

Flask:轻量级web框架,主要用于搭建API接口服务

unittest:测试框架


个人理解

为什么做

1. TDD模式,测试驱动开发
2. 自行搭建API接口服务,可以自己编写调整接口的实现方法
3. 主要还是用于测试编写的程序

做什么

1. request-》response-》validate-》result 总的来说我们这个程序是组装request,获得接口的response然后经由校验最终得出结果。所以单元测试框架,要实现满足我们程序需求的接口。例如,增删改查用户接口。

2. request =》 response 知道了第一点之后,接下来的任务就是搭建API Server了。


源码阅读

@app.route('/api/get-token', methods=['POST'])
def get_token():
    # 获取request的头部信息
    user_agent = request.headers.get('User-Agent', "")
    device_sn = request.headers.get('device_sn', "")
    os_platform = request.headers.get('os_platform', "")
    app_version = request.headers.get('app_version', "")
    data = request.get_json()
    sign = data.get('sign', "")
    # 使用头部信息生成sign参数(用于校验)
    expected_sign = utils.get_sign(user_agent, device_sn, os_platform, app_version)

    # 如果头部信息生成的sign与request中携带的sign不符合就提示验证失败
    if expected_sign != sign:
        result = {
            'success': False,
            'msg': "Authorization failed!"
        }
        response = make_response(json.dumps(result), 403)
    else:
        # 如果验证通过,就将随机生成的16位数token存入device_sn中,并将token存入result中
        token = utils.gen_random_string(16)
        token_dict[device_sn] = token

        result = {
            'success': True,
            'token': token
        }
        response = make_response(json.dumps(result))

    response.headers["Content-Type"] = "application/json"
    return response

阅读test/api_server.py文件,使用Flask框架搭建了一个api server。其中定义了两个变量,user_dict,token_dict。一个存储用户信息,另一个存储sn以及对应的token。

其中有用户增删改查的api以及用户获取token的api。

你可能感兴趣的:(接口测试)