本篇圍繞jmeter(壓力測試工具),請求json與返回json串處理進行解析,初入測試,理解如有不對的地方請大家及時提點~~
在這里jmeter工具的使用不在做解釋
首先說下亂碼問題,在這里無腦5步保證后續無亂碼之憂
1.在http請求-contentencoding:utf-8 ↓
2.http請求-advanced-implementation:Java ↓
3.解決結果樹中亂碼:修改配置文件在jmeter主目錄下/bin/jmeter.properties
搜索sampleresult.default.encoding將搜索的那一行變成
sampleresult.default.encoding=utf-8;
4.解決body-data亂碼(也就是json串發送至服務器出現亂碼)
在jmeter.properties配置文件最后加入
jsyntaxtextarea.font.family=Hack;
5.如果還是不行在sample加入beanshell sampler ↓
輸入prev.setDataEncoding("utf-8");
下面講示例:接口流程是注冊接口-登錄接口-添加補充信息接口-查詢信息接口-充值接口
腳本已經寫好了,咱們來看看吧~
按照接口文檔請求為post,在bodydata添加參數,入參為上圖 ↑
添加一個結果樹,請求成功 ↑
在獲取學生信息接口查看是否有剛剛的信息--居然有了 ↑
jmeter傳參學會了,接收json串並且關聯后續接口怎么做呢?
查看登錄返回接口發現sign跟我們要的session很像~我們拿來用一用 ↑
在登陸接口添加JSON Extractor(jmeter4.0自帶,沒有的裝插件吧) ↑
(另外一點:請求返回結果大家可以去看一下結果樹右圖xml,html,json等,具體看返回什么結果,對於html的返回格式,可以用正則表達式,對於json返回的數據可以用JSON Extractor和beanshell)
JSON Extractor的使用:
variables:設置一個指定名稱
json path expressions路徑根據上面左側圖返回的:先看最外層的大括號,其次“$.”表示最外層路徑(結果跟xpath差不多)之后里面又嵌套了一個大括號{}括起來的內容也是一個整體,也可能有多個(就像文件路徑一樣),想要去哪個整體找就需要一層一層的去找,外層到內層的連接用"."表示,最后找到想要的sign,所以表達式為$.login_info.sign
備注:json中data是一個對象數組,data[0]代表取得的是第一個對象數組,data[*]表示全部,因為該響應只有一條數據所以可以忽略,則需要固定取值如$.login_info[0].sign意思為取第一組json里的sign值
獲取到了json傳sign的值,要去登陸用戶並且去做充值,如果我們知道cookie和session的關系就很簡單了
在充值接口下添加http請求管理器(當然還有種做法是直接加cookie管理器也行) ↑
加入cookie和前面關聯的sessionid
當然也可以通過debug sampler去校驗一下有沒有取到值 ↓
最后去數據庫校驗或者查詢學生信息接口有沒有增加金額就可以了~~~~·
版權聲明:本文原創發表於 博客園,作者為 RainBol 本文歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則視為侵權。