python脚本测试——接口高并发场景

一、环境准备。

1、下载安装python

https://www.python.org/

2,安装教程请自行百度

https://jingyan.baidu.com/article/cd4c29792c36c6756f6e604b.html

3、IDEA在file–settings–Plugins中安装Python

二、复用需要修改的地方:

1、url路径

2、token信息

3、连接数据库的信息

4、sql语句

5、请求方式:get、post、delete、put

6、用户username的特殊性规则

7、并发线程数:concurrent_thread_count

8、请求数据在RequestBody中还是在RequestParam中

三、添加学生。

1、设计思路

设置线程数,作为循环次数,特殊值+i作为学号,性别取1、2的随机数

2、实现代码如下

# 并发测试框架//添加学生
import pymysql
import requests,threading
import random
# 接口路径和token
data = {
   
    "url": "http://。。。/base/add",
    "header": {
   
        "X-Access-Token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9."
    },
}
# 并发线程数
concurrent_thread_count = 1000
# 每个线程中循环测试接口的次数
ONE_WORKER_NUM = 1
# 测试代码
def test(username):
    random.randint(1,2)
    # 获取试题接口
    # 参数在请求体中时,使用bodys
    bodys =  {
   
        # 请求体参数
        "num": username,
        "name": "随删数据",
        "gender": random.randint(1, 2)
    }
    print(bodys)
    response = requests.post(data["url"], json=bodys, headers=data["header"])
    # response = requests.get(data["url"]+'?userId='+resultSql[0], headers=data["header"])
    if response.status_code == 200:
        result = response.content.decode('utf-8')
    else:
        result = "访问失败"
    print(threading.current_thread(), result)

# 单个线程,可以设置一个线程访问几次接口
def working(username):
    global ONE_WORKER_NUM
    for i in range(0, ONE_WORKER_NUM):
        test(username)

def t():
    Threads = []
    # 根据数据的数量当作循环次数,每次创建一个线程
    for i in range(concurrent_thread_count):
        username = 111111000+i
        t = threading.Thread(target=working, args=(username, ))
        t.setDaemon(True)
        Threads.append(t)
    for t in Threads:
        t.start()
    for t in Threads:
        t.join()

if __name__=="__main__":
    t()

四、获取试题。

1、设计思路如下

1、第一步:先执行查询数据库操作,查询出来一共有多少条符合条件的数据;数据总数作为循环的次数,每次循环起一个线程,线程中带有参数username,根据添加用户时账号的规律设置username = “”"’%s’"""%(111111000+i)当作参数传递

2、第二步:每个线程中可以设置循环次数,每次调用具体方法

3、第三步:测试代码部分,根据传递的username作为条件查询用户id;获取到用户id后当作参数去访问接口,打印返回值

2、实现代码如下(使用多个不同的用户id做参数)

# 并发测试框架
import pymysql
import requests,threading
# 接口路径和token
data = {
   
    "url": "http://。。。/mobile/getAll
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值