直接举例来说 :)
例1:URL里面有”&”连接的情况
http://123.456.7.89:8080/aa/bb/cc/?userid=abcd@gmail.com&operation=rm&key=docs&value=3680635
简单说一下这个URL的意思也算是做到仁至义尽:用户abcd(userid)正在执行1个删除(rm)操作,删除的对象是id为3680635的这篇文章(docs)。
例2:URL里面不带”&”的情况,如果仍然以例1的方式配置那就是自寻死路
http://123.456.7.89:8080/article/relation/channel/0038/keyword/movie/start/0/size/20/
再仁至义尽一把:在article这个领域里面,定位到0038这个频道(channel),搜索与关键词(keyword)“movie”相关的东西,从搜索结果的第1条(start=0)开始罗列,一共列出20条结果。
!!但是,如果遇到URL里面不带”&”的情况,仍然以表单的形式发送请求,返回结果当然不是http200 ok。因为实际上我们发送出去的请求是下面这样的:
http://123.456.7.89:8080/article/relation/channel/{channel}/keyword/{keyword}/start/{start}/size/{size}/?{channel}=0038&{keyword}=movie&{start}=0&{size}=20
所以,这样的请求发送到服务器,显然是错误的。
于是当遇到URL里面不带”&”的情况,直接把请求写在路径里就行了,如下:
==============================补充说明:虽然浏览器的URL里面可以包含中文,但是Jmeter的URL里面不行=====================================
需要说明的是,如果在Jmeter的URL直接输入中文,也是不可以的
http://123.456.7.89:8080/article/relation/channel/0038/keyword/薄荷/start/0/size/20/
这个请求直接通过Jmeter向服务器发送,此时服务器会返回以下信息:
Response headers:
HTTP/1.1 400 The URL contains escaped bytes unsupported by the UTF-8 encoding.
所以看出,服务器不识别中文”薄荷”,即使这个URL通过浏览器发送是可以正常返回Json数据的。
那么,在执行性能测试的时候,可以首先把中文UTF-8编码,然后再加入到URL内,这样就好了,如下:
http://123.456.7.89:8080/article/relation/channel/0038/keyword/%E8%96%84%E8%8D%B7/start/0/size/20/