保持邮递员的全局变量不变?

时间:2016-10-26 15:47:05

标签: automated-tests postman web-api-testing

背景

我在postman中有一个变量,我随机生成一个uid,用于创建用于注册和登录测试的用户ID。

邮递员工作

在注册请求中,在预请求脚本

var uid="{{$randomInt}}"
postman.setGlobalVariable("IID",uid);`

在登录请求中,正文设置为:

  {"uid":"{{IID}}" }

问题

问题是每次执行{{IID}}时,都会生成一个新值。

但是,我的座右铭是在注册时随机创建用户ID并在

期间使用它

登录失败,因为{{IID}}给了我一个新的uid,而不是uid set

注册期间

(使用postman.setGlobalVariable(" IID",uid);)。

查询

任何想法,如何每次在流程开始时随机生成用户ID,然后在 POSTMAN 中的其余流程中使用该用户ID。

Flow是SignUp操作,然后是Login操作。

1 个答案:

答案 0 :(得分:1)

只需在沙盒模式下使用任何library available即可在预请求脚本中生成随机ID。 您甚至可以为此目的制作STARTUPINFOA si; ZeroMemory(&si,sizeof(STARTUPINFO)); si.cb = sizeof(si); PROCESS_INFORMATION pi; ZeroMemory(&pi, sizeof(pi)); char cmd_exe[32767]; GetEnvironmentVariable("COMSPEC", cmd_exe, 32767); if (CreateProcessA(cmd_exe, "/k", NULL, NULL, TRUE, CREATE_NEW_CONSOLE, NULL, NULL, &si, &pi)) { CloseHandle(pi.hThread); WaitForSingleObject(pi.hProcess, INFINITE); DWORD dwExitCode = 0; GetExitCodeProcess(pi.hProcess, &dwExitCode); CloseHandle(pi.hProcess); std::cout << "cmd process exit code = " << dwExitCode << std::endl; } else { DWORD dwErrorCode = GetLastError(); std::cout << "cmd process not started, error = " << dwErrorCode << std::endl; } 或使用lodash的_.random(min,max)。 其他所有内容都可以无需更改(我的意思是&#34; {{ID}}&#34;在下一个请求&#39; body / headers / URL中)