目前流行的微服务化,使 Http 类型的接口从底层 RPC 到中台 manage 再到前端 APi 都可以进行覆盖,适用的范围和人群也更为广泛。测试人员可以轻松通过 swagger 文档或者抓包工具来进行各个端 API 接口自动化以及性能测试,本章主要总结下 http 接口的压测任务的创建。
如下例子:

from locust import HttpLocust, TaskSet, task, between
import queue


# 多个用户登录脚本

class MySetTest(TaskSet):
    user_auth_token = None

    @task(1)
    def user_login(self):
        s = self.locust.queue_data1.get()
        api = '/user/login'
        body = {
            'username': s,
            'password': "1111"
        }
        headers = {
            'Content-Type': 'application/json'
        }
        querystring = {"type": "1"}
        with self.client.post(url=api, json=body, params=querystring, headers=headers, catch_response=True,
                              name="login_api") as res:
            if res.status_code != 200:
                res.failure("Failed")  #如果该条用例的状态不是200,将该条用例标记为失败


class UserTestLocust(HttpLocust):
    task_set = MySetTest
    queue_data1 = queue.Queue()
    import random
    for each in range(0, 10):
        queue_data1.put_nowait("1300000" + str(random.randint(1000, 9999)))
    wait_time = between(1, 5)
    host = 'http://127.0.0.1:8800'

由例子可以看出(传递 http 请求就像使用 requests 发送 post 或者 get 一样):


↙↙↙阅读原文可查看相关链接,并与作者交流