Jmeter發送Json請求


jmeter發送的post請求,可以是json請求,和普通的post請求稍微有點區別,那么怎么用jmeter發送json請求呢?

首先要找一個json請求的例子,這個例子是攜程網搜索機票,

網址為:http://www.ctrip.com/

 

就會看到一個請求

POST http://flights.ctrip.com/itinerary/api/12808/products HTTP/1.1

Host: flights.ctrip.com

Connection: keep-alive

Content-Length: 394

Origin: http://flights.ctrip.com

User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36

Content-Type: application/json

Accept: */*

Referer: http://flights.ctrip.com/itinerary/roundtrip/SZX-PVG?date=2018-08-16,2018-09-03&portingToken=f4b3cccf952d430f849b09cf2f1b7142

Accept-Encoding: gzip, deflate

Accept-Language: zh-CN,zh;q=0.9,en;q=0.8

Cookie: _abtest_userid=5de22bed-c5a7-4899-9a39-d9585171b4dd; _RSG=2t4LegTggt55DEOg1rU9yA; _RDG=2832aa1c0f5c9127e73f759be773872d62; _RGUID=5deaa9da-a854-4dc2-af09-7b506a60e345; _ga=GA1.2.928472268.1516689249; Session=SmartLinkCode=U799897&SmartLinkKeyWord=&SmartLinkQuary=&SmartLinkHost=&SmartLinkLanguage=zh; DomesticUserHostCity=SZX|%c9%ee%db%da; adscityen=Shenzhen; _RF1=119.139.197.11; _gid=GA1.2.1823419760.1533784673; Union=OUID=&AllianceID=4897&SID=799897&SourceID=&Expires=1534389473325; MKT_Pagesource=PC; appFloatCnt=1; manualclose=1; _bfa=1.1516689246225.w2exd.1.1533784670751.1533792777877.13.59; _bfs=1.4; Mkt_UnionRecord=%5B%7B%22aid%22%3A%224897%22%2C%22timestamp%22%3A1533794105486%7D%5D; _jzqco=%7C%7C%7C%7C1533794085844%7C1.75043952.1516689249334.1533794085722.1533794105525.1533794085722.1533794105525.undefined.0.0.27.27; __zpspc=9.15.1533794085.1533794105.2%231%7Cbaiduppc%7Cbaidu%7Curldx%7C%25E8%25AE%25A2%25E7%25A5%25A8%25E7%25BD%2591%25E7%25AB%2599%7C%23; _bfi=p1%3D100101991%26p2%3D100101991%26v1%3D59%26v2%3D58; FD_SearchHistorty={"type":"D","data":"D%24%u6DF1%u5733%28SZX%29%24SZX%242018-08-16%24%u4E0A%u6D77%28%u6D66%u4E1C%u56FD%u9645%u673A%u573A%29%28PVG%29%24SHA%2CPVG%242018-09-03%24%24"}

 

{"flightWay":"Roundtrip","classType":"ALL","hasChild":false,"hasBaby":false,"searchIndex":1,"portingToken":"f4b3cccf952d430f849b09cf2f1b7142","airportParams":[{"dcity":"SZX","acity":"PVG","dcityname":"深圳","acityname":"浦東國際機場","date":"2018-08-16","dcityid":30},{"dcity":"PVG","acity":"SZX","dcityname":"浦東國際機場","acityname":"深圳","date":"2018-09-03","acityid":30}]}

 

可以看出請求數據是一個json字符串,這個就是一個json請求。

然后在打開jmeter,新建一個http請求

 

在http請求中填寫內容如下圖,把json串復制到BodyData 中去

 

添加結果樹,執行請求,Response Data沒有數據,說明請求不成功

 

請求不正常,是因為請求的header 不正確,添加header

 

復制請求數據中的header信息到粘貼板,點擊【add from clipboard】按鈕,就自動把header的鍵值對復制到這里,很方便。這個是jmeter 4.0,記得jmeter 3.x版本復制過去,每一行開頭還多了一個空格,現在4.0 沒有這個問題,算是方便不少了。

 

再執行請求,請求響應信息正常

 

這個時候,如果刪除 header信息中的 Content-Type: application/json

請求又不正常,說明json請求一定要再header 中配置這一項才行

微信關注公眾號:為測,獲取更多自動化方面技術文章

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM