我想点击一个URL并保存响应。每次都需要递增URL id并保存响应。例如 -
首先获取请求 - http://google.com/getdata/? Id = 1
第一反应 - 一个
第二次请求 - http://google.com/getdata/? Id = 2
第二次回复 - 两次
依旧......
我希望每次都增加id来点击请求并保存响应
我尝试过使用fiddler,但无法确定如何增加id并保存响应。
P.S。 - 我必须大约6,00,000次点击
答案 0 :(得分:1)
在JMeter中,您需要单击,按Ctrl + 0和Ctrl + 1创建,线程组和HTTP Request
在线程组中,在Number of Threads (users)
在HTTP请求中放入Server Name or IP
www.google.com和Path
/ getdata /?Id = $ {__ threadNum}
__threadNum将从线程1到命中数创建越来越多的数字。
对于少量点击或调试,您可以通过单击测试计划/线程组级别中的Ctrl + 9来添加View Results Tree以查看请求/响应。
要保存响应,请使用后处理器,特别是通过单击Ctrl + 2在HTTP请求下添加Regular Expression Extractor。
允许用户使用Perl类型的正则表达式从服务器响应中提取值。作为后处理器,此元素将在其范围内的每个Sample请求之后执行,应用正则表达式,提取请求的值,生成模板字符串,并将结果存储到给定的变量名称中。
导入注意到对于load testing,您需要使用非GUI模式,这意味着使用命令行调用jmeter为jmeter -n -t myTest.jmx
您将使用命令行模式(称为非GUI模式)来运行负载测试。 不要使用GUI模式运行负载测试!
要保存对一个文件的所有回复,请参阅save response data,或者如果要为每个帖子/用户保存文件,可以添加Save Responses to a file
答案 1 :(得分:1)
由于' Postman'标签被提到,我可以帮助你如何在邮递员中实现这一点。 Postman有一个使用'变量的好功能。
您可以使用环境变量或全局变量。
在他们的文档上阅读有关这些内容的更多信息: https://www.getpostman.com/docs/v6/postman/environments_and_globals/variables
您可以使用全局变量,例如' counter'并将其设置为1 /您想要的任何起点。
然后您可以像这样修改您的请求:
http://google.com/getdata/?Id={{iteration}}
现在,在请求的测试脚本中,您可以编写以下脚本
let i = parseInt(pm.globals.get('iteration')) + 1;
pm.globals.set('iteration', i);
此外,要访问响应,您可以在测试脚本中使用以下命令:
console.log(pm.response); // Use pm.response as per your needs
将请求保存在集合中。 现在加载Postman的Runner并选择该集合。 现在你可以将迭代次数设置为6,00,000并点击运行!
请记住,大量迭代会导致性能下降。
答案 2 :(得分:0)
请在下面找到适用于您的方案的快照。
首先,转到用户属性并输入" sample_variables = ID,Response_File_Name"或者您为变量选择的名称。重启jmeter。 创建以下计划: -
希望这会有所帮助。
答案 3 :(得分:0)
我会通过命令行执行此操作,使用带有curl到URL的while循环,将标准输出的body结果存储到文件中。它看起来像这样:
for i in {1..600000}; do curl "http://google.com/getdata/?id=$i" > body-result-id-$i; done
我无法测试上面的行,因为我现在没有任何访问控制台的权限,但我认为它应该可行。
答案 4 :(得分:0)
的Fiddler:
打开脚本编辑器(Control + r),然后在 OnBeforeResponse
中添加以下代码 static function OnBeforeResponse(oSession: Session) {
if(oSession.oRequest["X-SAVE-ME"] != "")
{
oSession.SaveResponseBody("C:\\tempfiddler\\" + oSession.SuggestedFilename);
}
}
转到“编辑器”标签并在页面中包含带有任意值的标题X-SAVE-ME,将 ID 替换为#(就像这样) :http://google.com/getdata/?Id=#)fiddler现在会在执行之前询问ID的起始值和结束值;
答案 5 :(得分:0)
在Burp中,您可以使用Intruder工具执行此操作。首先,在Burp中捕获一个样本请求。如果您不确定如何执行此操作,请参阅getting started文档。
然后右键单击该请求并选择"发送给入侵者"。
在Intruder中的“位置”标签中,首先点击"清除"然后选择要更改的部分,然后单击"添加"
在Payloads选项卡中,选择Payload类型为" Numbers"并配置范围。
点击"开始攻击"
有关详细信息,请参阅documentation。
答案 6 :(得分:0)