我正在准备性能脚本的应用程序是在Sails上实现的,并使用cookie来验证API调用的身份验证。使用JMeter的HTTP Cookie管理器没有帮助,因为它没有记录所有cookie值。我能够使用beanshell预处理器手动添加它们
beanshell代码片段:
CookieManager manager = sampler.getCookieManager();
Cookie cookie1 = new Cookie("cookie1","someValue","localhost","/",false,0);
manager.add(cookie1);
此代码已成功将cookie1添加到JMeter中的cookie中。
我还需要添加另一个类似于JSON的cookie。
CookieManager manager = sampler.getCookieManager();
Cookie jsonCookie = new Cookie("cookie1","{\"Element\":{\"child1\":\"child1value\",\"child2\":\"child2value\"}","localhost","/",false,0);
manager.add(jsonCookie);
这个新cookie(jsonCookie)的值在Debug Sampler中看起来很好。当我在Request中查找相同的cookie时,Cookie变量会在doublequote中添加其他转义字符。
Http Request Cookie Data:
cookie1=somevalue;jsonCookie="{\"Element\":{\"child1\":\"child1value\",\"child2\":\"child2value\"}"
Debug Sampler value
COOKIE_cookie1=somevalue
COOKIE_jsonCookie="{\"Element\":{\"child1\":\"child1value\",\"child2\":\"child2value\"}"
在cookie数据中添加额外的转义字符会导致身份验证失败。如何确保cookie值没有这些额外的转义字符?
我尝试从用户定义的变量中获取这些json值,并直接在Beanshell预处理器中传递它们。在这两种方法中,得到的cookie值都是相同的。
答案 0 :(得分:0)
您可以更改" Cookie政策"下拉到netscape
以删除这些"额外的斜杠"
实际上,我在这里看不到任何脚本需求,因为您可以通过User-Defined Cookies
部分添加自定义Cookie,例如:
还有一些建议: