Postman中创建含唯一邮箱的API测试请求:动态设置email_string方法
当然可以!在Postman里实现动态生成唯一邮箱并更新环境变量非常简单,最常用的方式就是利用Pre-request Script(请求前置脚本)来完成,下面给你几种实用的方案:
方案1:基于现有静态邮箱生成带唯一后缀的邮箱
这种方法会保留你原email_string的域名部分,只在本地邮箱地址后添加唯一标识(比如时间戳、随机数),很多邮箱服务商(比如Gmail)都支持这种+后缀的格式,不会影响邮件接收。
步骤:
- 打开你的请求,切换到Pre-request Script标签页
- 粘贴以下代码:
// 从环境变量中获取你设置的静态email_string const baseEmail = pm.environment.get("email_string"); // 拆分邮箱的本地部分和域名部分 const [localPart, domainPart] = baseEmail.split("@"); // 生成唯一后缀:时间戳(精确到毫秒)+ 随机数,确保绝对唯一 const uniqueSuffix = `${Date.now()}_${Math.floor(Math.random() * 1000)}`; // 组合成新的唯一邮箱 const uniqueEmail = `${localPart}+${uniqueSuffix}@${domainPart}`; // 更新环境变量中的email_string,这样请求体里的{{email_string}}就会自动使用新值 pm.environment.set("email_string", uniqueEmail); // 如果你不想覆盖原有的静态email_string,可以把新邮箱存到一个新的环境变量,比如unique_email // pm.environment.set("unique_email", uniqueEmail);
- 在请求体中直接使用
{{email_string}}(或者新变量{{unique_email}})作为邮箱字段的值
方案2:生成完全随机的邮箱(保留自定义域名)
如果你想要更随机的本地邮箱部分,同时保留原email_string的域名,可以结合Postman的内置动态变量:
const baseDomain = pm.environment.get("email_string").split("@")[1]; // 使用Postman内置的随机用户名变量生成本地部分 const randomLocalPart = pm.variables.replaceIn("{{$randomUserName}}"); const uniqueEmail = `${randomLocalPart}@${baseDomain}`; pm.environment.set("unique_email", uniqueEmail);
方案3:直接在请求体中嵌入动态逻辑(需配合前置脚本)
如果你不想单独维护变量,也可以在前置脚本中生成邮箱后,直接赋值给请求体。比如你的请求体是JSON格式:
// 生成唯一邮箱(代码同方案1) const baseEmail = pm.environment.get("email_string"); const [localPart, domainPart] = baseEmail.split("@"); const uniqueSuffix = Date.now(); const uniqueEmail = `${localPart}+${uniqueSuffix}@${domainPart}`; // 获取当前请求体并修改邮箱字段 const requestBody = JSON.parse(pm.request.body.raw); requestBody.email = uniqueEmail; pm.request.body.raw = JSON.stringify(requestBody);
验证方法
每次发送请求前,你可以点击Postman右上角的环境变量按钮,查看email_string(或unique_email)的值是否已经更新为带唯一后缀的邮箱;也可以在发送请求后,查看请求历史里的请求体,确认邮箱是唯一的。
内容的提问来源于stack exchange,提问作者Vala Khosravi
相关产品推荐
相关产品推荐

