如何只发送一次删除查询

2024-05-23 07:58:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我正面临着蝗虫问题

代码如下:

@task
def delete_test(self):
for number in range(0, 10):
    response = self.client.request(method="GET", url="api/number/%s" % number,
                                   headers={'X-Username': 'admin', 'X-Password': 'admin'},
                                   catch_response=True)
    
    if response.status_code == 200:
        self.client.request(method="DELETE", url="api/number/%s" % number,
                            headers={'X-Username': 'admin', 'X-Password': 'admin'})

正如您所看到的,这是我的问题,首先我要检查GET查询中是否存在%s(编号)

在纯Python没有蝗虫的情况下,我会得到的!200代码,将不执行删除查询

但正如您所知,在Occast中,我们是在模拟用户,所以问题是-如何只进行一次删除

因为在它被删除后,另一个模拟用户也试图再次删除它,而我的测试一次又一次失败

我甚至在官方文档/我的课程中也找不到解决方案


Tags: 代码selfclientapiurlnumbergetadmin
1条回答
网友
1楼 · 发布于 2024-05-23 07:58:14

也许只是用一个标志来表示某个特定的号码是否已被删除

像这样:

class MyUser(HttpUser):
    deleted_numbers = {}

    @task
    ...
        if response.status_code == 200 and number not in MyUser.deleted_numbers:
            MyUser.deleted_numbers[number] = True
            self.client.request(method="DELETE", url="api/number/%s" % number, ...)

请注意,这在分布式运行中不起作用

相关问题 更多 >

    热门问题