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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 22:46:15