【代码片段】用python进行接口测试

Python语言 小铁匠 2019-08-01

用python进行接口测试

前言

最近公司搞了个抽奖的活动,开发完成之后需要测试一下中奖率是否准确。本来可以用Jmeter来测试,但我是一名开发人员并没有安装Jmeter,所以就想着写个python脚本测试。考虑到后续可能还会有类似的测试需求就弄了个公共的。

代码

import requests

data = {
    "times": 100, # 请求次数
    "method": "POST", # GET or POST
    "url": "http://xxx.com/xxx",
    "cookies": {
        "PHPSESSID": "cnguud4r1hmn3passs906odp21"
    },
    "proxy": {
        # 代理设置
    },
    "header": {
        "Content-Type": "application/json", # application/x-www-form-urlencoded
        "user-agent": "python-mock/0.0.1",
        "token": ""
    },
    "body": {
        # 请求参数
    }
}

index = 1
while index <= data["times"]:
    if data["method"] == "GET":
        response = requests.get(
            data["url"], params=data["body"], headers=data["header"], cookies=data["cookies"], proxies=data["proxy"])
    elif data["header"]["Content-Type"] == "application/json":
        response = requests.post(
            data["url"], json=data["body"], headers=data["header"], cookies=data["cookies"], proxies=data["proxy"])
    else :
        response = requests.post(
            data["url"], data=data["body"], headers=data["header"], cookies=data["cookies"], proxies=data["proxy"])

    if response.status_code == 200:
        result = response.content.decode('utf-8')
    else:
        result = "访问失败"
    print(" %s 次执行:%s" % (index, result))
    print()
    index += 1

备注:由于需求是测试中奖概率,所以写的是顺序请求,并不会有并发的情况出现。如果需要测试并发可以使用进程或者线程。

------ 本文结束 感谢阅读 ------