当前位置: 首页>编程语言>正文

使用 Locust 进行接口性能测试

以下是一个使用 Locust 进行接口性能测试的简单示例。在这个示例中,我们将模拟用户对一个 API 接口进行 POST 请求。

首先,确保你已经安装了 Locust:

```bash

pip install locust

```

然后,创建一个 Python 文件,例如 `my_locust_file.py`,并在其中编写以下代码:

```python

from locust import HttpUser, task, between

class WebsiteUser(HttpUser):

    wait_time = between(5, 15)  # 设置用户每次请求之间的等待时间(单位:秒)

    @task

    def load_test_api(self):

        url ='/path/shellCompany'

        headers = {"Content-Type":"application/json"}

        params = {"credit":"1","data":"2"}

        with self.client.post(url=url, json=params, headers=headers,verify=False,catch_response=True)as res:

            if res.status_code ==200:

                data = res.json()['credit']['header']['rspCode']

                if data =='00000':

                    res.success()

                else:

                    res.failure("Request failed with status code: %s" % data)

            else:

                res.failure("Request failed with status code: {}".format(res.status_code))

在上述代码中:

- 我们定义了一个名为 `WebsiteUser` 的类,继承自 `HttpUser`。

- wait_time = between(5, 15) 表示用户每次请求之间的等待时间会在 5 到 15 秒之间随机选择。

- @task 装饰器标记了一个用户行为任务,这里我们定义了一个名为 `load_test_api` 的任务,它会发送一个 GET 请求到 `/api/my_endpoint`。

- self.client.post() 是用于发送 HTTP 请求的方法,你可以替换为 `get()`, `put()`, `delete()` 等其他方法来模拟不同的 HTTP 请求类型。

我们使用 catch_response=True 参数来捕获 HTTP 响应。

在 with 语句的上下文中,我们可以访问到响应对象,并对其属性进行检查。

使用 response.status_code 检查 HTTP 状态码。

如果状态码为 200,我们解析响应内容(在这个例子中,我们假设它是一个 JSON 对象),然后添加断言来检查响应数据中的特定字段。

如果所有断言都通过,我们调用 response.success() 方法来标记请求为成功。

如果状态码不是 200,我们调用 response.failure() 方法,传入一个描述失败原因的消息,并标记请求为失败。

要运行 Locust,并针对这个示例进行性能测试,打开命令行,然后执行以下命令:

```bash

locust -f my_locust_file.py --host=http://your-api-url.com

```

在这里,将 `http://your-api-url.com` 替换为你要测试的实际 API URL。

这将会启动 Locust 服务,你可以在 Web 界面(默认地址 http://localhost:8089/)中配置并发用户数和吞吐量等参数,并开始执行性能测试。


https://www.xamrdz.com/lan/5vw2016233.html

相关文章: