jmeter接口測試json詳解


本篇圍繞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 本文歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則視為侵權。


免責聲明!

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



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