0

POST 的响应正文包含以下 javascript:

var now = new Date();
document.location.href="/wwtb/entry.cgi?id=148e2743ad01572d55265c96ae91dc6c&uid=qastudent&fromlogin=1&ts=" + now.getTime();

我需要在评估后提取 ts 的值,以便可以在下一个 GET 中将其作为参数传递。

4

1 回答 1

0

根据JMeter 项目主页

JMeter 不是浏览器,它在协议级别工作。就 Web 服务和远程服务而言,JMeter 看起来像一个浏览器(或者更确切地说,是多个浏览器);但是 JMeter 并不执行浏览器支持的所有操作。特别是,JMeter 不执行 HTML 页面中的 Javascript。它也不像浏览器那样呈现 HTML 页面(可以将响应视为 HTML 等,但时间不包含在任何示例中,并且一次只显示一个线程中的一个示例)。

因此,您将无法在“评估后”提取值,因为它永远不会被评估。

JMeter 等效于Date.getTime() 函数的是__time() 函数,因此如果您将以下构造放在测试计划中的任何位置:

/wwtb/entry.cgi?id=148e2743ad01572d55265c96ae91dc6c&uid=qastudent&fromlogin=1&ts=${__time()}

${__time()}位将替换为运行时中的当前时间戳:

在此处输入图像描述

查看Apache JMeter Functions - 一篇介绍文章以熟悉 JMeter Functions 概念。

于 2019-03-06T16:19:26.717 回答