You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python Locust压测时写入CSV文件,邮箱被拆分为单个字符的问题解决

Python Locust压测时写入CSV文件,邮箱被拆分为单个字符的问题解决

嗨,我来帮你搞定这个邮箱被拆成单个字符的问题~

问题原因

你遇到的核心问题是**csv.writer.writerow()方法的参数要求**:这个方法接收的是一个可迭代对象(比如列表、元组),当你直接传入字符串email时,Python会把字符串当成“单个字符组成的可迭代序列”,所以每个字符都会被拆成CSV的一列,就出现了你看到的逗号分隔每个字符的情况。

解决方法

只需要把邮箱字符串放到一个列表(或元组)里传给writerow()就行,让它把整个邮箱当成一行的单个元素。另外我还帮你调整了代码里的两个小问题:

  1. 把csvwriter的创建移到循环外面,不用每次循环都实例化一次,更高效;
  2. 把文件打开模式从"w"改成"a"(追加模式),避免每次执行register任务时清空之前的CSV内容(如果需要每次任务都重新生成5行,那可以保留"w",但通常压测时会需要累积记录)。

修改后的代码片段如下:

@task
def register(self):
    self.client.request_name = "API Register User"
    # 这里把打开模式改成"a"追加,避免每次覆盖文件;如果需要每次清空可保留"w"
    with open("email.csv", "a", newline="") as csvfile:
        csvwriter = csv.writer(csvfile)  # 把csvwriter移到循环外,只实例化一次
        for x in range(5):
            email = ''.join(random.choices(string.ascii_letters + string.digits, k=10)) + str(
                x + 1) + "@gmail.com"
            telcocode = random.randint(10, 19)
            phone = random.randint(10000000, 99999999)
            phonestr = "+60" + str(telcocode) + str(phone)

            # 关键修改:把email放到列表里,让writerow把它当成一行的单个元素
            csvwriter.writerow([email])
            
            self.client.headers = {
                "x-api-key": "KZThJSCH1vWj5snaeQQ+TQ5rTbucayxXtDVHFmfRSJag5gLkUKOMgrpitL1jHIVr6bYAN5N9NrKWg6RhdgNThQ=="}
            response = self.client.post("https://",
                                        {"email": email, "phone": phonestr,
                                         "password": "abcd1234", "password_confirmation": "abcd1234"}
                                        )
            assert response.status_code == 200, "Failed to register, status code: " + str(response.status_code)
            logging.info(response.text)

效果验证

修改后,CSV文件里的内容就会变成你想要的格式:

zbrXSFipH1@gmail.com
IqO2itaQwm2@gmail.com
5wJb1vYXfH3@gmail.com
GJSyIYSS9e4@gmail.com
LM8RBapgI05@gmail.com

备注:内容来源于stack exchange,提问作者Ivan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.13 18:53:01