e2e测试:如何在httpYac中赋值系统时间给变量并用于请求负载
httpYac中获取当前ISO时间并用于请求体的正确语法
以下是实现需求的正确httpYac代码,关键是通过JavaScript代码块定义变量,再在请求体中引用:
### Precondition: Create a contract with current time stamp in ISO format {% // 生成当前时间的标准ISO格式字符串(带毫秒) const currentDateTimeStringInISO = new Date().toISOString(); // 若需不带毫秒的格式,替换为下面这行: // const currentDateTimeStringInISO = new Date().toISOString().slice(0, 19) + 'Z'; %} POST http://localhost:8080/api/rest/v1/contracts/12345678 Authorization: Basic dXNlcjp1c2Vy // 此为"user:user"的base64编码值 Content-Type: application/json { "valid_until": "{{currentDateTimeStringInISO}}", // 补充其他需要的字段... } > {% client.test("Status code is 201", function() { client.assert(response.status === 201, "Expected status code 201 for contract creation"); }); client.test("Contract status is VALID", function() { client.assert(response.body.contractStatus === "VALID", "Expected status to be VALID"); }); %}
核心要点说明
- 用
{% %}包裹JavaScript逻辑块,在其中定义时间变量:new Date().toISOString()会生成符合ISO 8601标准的时间字符串(如2024-05-20T14:25:30.123Z) - 请求体中通过
{{变量名}}的语法引用已定义的变量,httpYac会在发送请求前自动替换为实际的时间字符串 - Basic认证头部需要传入
用户名:密码的base64编码值,示例中dXNlcjp1c2Vy是user:user的编码结果,可通过浏览器控制台执行btoa("user:user")生成
内容的提问来源于stack exchange,提问作者Nicole Naumann
相关产品推荐
相关产品推荐

