我正在寻找有关JMeter编码的一些建议。我目前正在使用一个使用https和.aspx网址的系统,因此需要对我的帖子请求中的所有参数进行编码。我正在复制并粘贴Fiddler的网络表单以生成我的测试脚本。是否有一种劳动密集度较低的方式来编码我的网页表格的所有参数,因为我不得不勾选编码每个单独的参数。
答案 0 :(得分:0)
JMeter .jmx脚本基本上是XML files所以您应该能够在您喜欢的文本编辑器中打开JMeter脚本,找到以下行:
<boolProp name="HTTPArgument.always_encode">true</boolProp>
并将其替换为
org.apache.jmeter.config.Arguments args = sampler.getArguments()
sampler.getArguments().removeAllArguments()
args.each {
sampler.addEncodedArgument(it.getName(), it.getValue())
}
您可以使用JSR223 PreProcessor和以下Groovy代码替换未编码的参数及其编码的等效参数:
import sys
def cycle(current, count=1):
if current == 1:
return count
if current % 2 == 0:
return cycle(current / 2, count + 1)
return cycle(current * 3 + 1, count + 1)
def max_cycles(lower, upper):
max = 0
for current in range(lower, upper):
result = cycle(current, 1)
if result > max:
max = result
return max
def main(i, j):
if i > j:
(i, j) = (j, i)
print (i, j, max_cycles(i, j))
if __name__ == "__main__":
if len(sys.argv) < 3:
print 'usage: python filename argv1 argv2'
print 'exiting'
exit(0)
main(int(sys.argv[1]), int(sys.argv[2]))
上述代码将修改JSR223 PreProcessor's scope中的所有采样器,并用其编码的等价物替换参数值。这种方法可能是资源密集型的,因此明智地使用它,如果有可能考虑第1点和/或第2点中描述的替代方法,以防万一看到Apache Groovy - Why and How You Should Use It熟悉JMeter测试中Groovy脚本的概念。 / p>