jmeter新增http請求、java請求,將返回的json資料提取出來並將結果追加到一個檔案
jmeter新增http請求、java請求,將返回的json資料提取出來並將結果追加到一個檔案
抽獎活動返回的是json資料,所以需要先將返回的json字串裡面需要統計的欄位提取出來,此處需要統計的是reward欄位(reward即返回的獎品型別)
每個http請求都會返回一個reward,但jmeter一個檔案只能儲存一個結果,不能往結果中追加結果,如果要統計每個reward的型別,最優的辦法就是將所有返回同類型的reward欄位全部追加到一個檔案並儲存在本地,因此可以採用java請求來處理,追加寫到檔案並儲存到本地
1、jmeter傳送http請求
1) 新建http請求預設值
可在這裡面新增請求的伺服器IP或名稱
2)新建http請求
可在這選擇請求方法(此處是post),請求路徑以及攜帶的引數,攜帶引數的確定可通過抓包獲取
執行之後,返回資料為:
{
"errcode":0,
"data":
{
"reward":4
}
}
我們只需要統計獎品型別reward返回的欄位
2、提取json資料
1)新增正則表示式
引用名稱:reward(此處可自定義)
其中正則表示式的內容是否正確,可以先自己測試一把,即執行之後在察看結果樹裡面可以看到一個http請求,選擇RegExp Tester,在Regular expression裡面輸入正則表示式,可以看見返回的結果是否正確
2)檢視正則表示式的返回結果,可線上程組-新增Debug Sampler,執行之後可選擇Debug Sampler 檢視正則表示式的返回結果
3)正則表示式可以正確返回,所以我們正則表示式引用的名稱 reward可以作為一個變數,可在其他地方輸入${reward}來引用
3、java請求
使用正則表示式已經提取到獎品型別reward欄位,再作為引數提供給java請求,按照log+返回獎品型別命名檔案,把同一個返回型別儲存到同一個檔案裡面,reward有n個返回型別,就儲存n個檔案
eclipse中新建jmeter相關java類,有需要 用到jmeter相關的jar包,所以需要將截圖下的兩個jar匯入到eclipse中
1)新建一個java類AppendFile 功能是往檔案中追加內容
package editFile;
import java.io.IOException;
import java.io.RandomAccessFile;
public class AppendFile {
public static void main(String[] args) {
AppendFile.appendFile("E:\\dd.txt", "1111");
AppendFile.appendFile("E:\\dd.txt", "11111");
}
public static void appendFile(String fileName, String content) {
try {
// 開啟一個隨機訪問檔案流,按讀寫方式
RandomAccessFile randomFile = new RandomAccessFile(fileName, "rw");
// 檔案長度,位元組數
long fileLength = randomFile.length();
// 將寫檔案指標移到檔案尾。
randomFile.seek(fileLength);
randomFile.writeBytes(content + "\r\n");
randomFile.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
2)新建一個java請求類WriteResult ,作用是從jmeter獲取獎品型別reward,並使用返回型別 寫入檔案
package editFile;
import org.apache.jmeter.config.Arguments;
import org.apache.jmeter.protocol.java.sampler.JavaSamplerClient;
import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
import org.apache.jmeter.samplers.SampleResult;
public class WriteResult implements JavaSamplerClient {
private SampleResult results;
private String reward;
private String threadNumber;
// 設定從jmeter傳入引數
public Arguments getDefaultParameters() {
Arguments params = new Arguments();
params.addArgument("reward", "${reward}");// 設定reward引數 ---此處的${reward}引數即正則表示式提取引數命名的變數名
return params;
}
// 初始化方法,效能測試時只執行一次
public void setupTest(JavaSamplerContext arg0) {
}
// 重複執行測試的地方
public SampleResult runTest(JavaSamplerContext arg0) {
reward = arg0.getParameter("reward"); // 獲取jmeter傳入的引數值,
results = new SampleResult();
results.sampleStart();// jmeter 開始統計響應時間標記
AppendFile.appendFile("E:\\jmeter\\log"+ reward + ".txt", reward);
if(reward.length() ==1){
results.setSuccessful(true);
results.setResponseData("reward:"+reward, null);
}else{
results.setSuccessful(false);
results.setResponseData("獲取失敗 ", null);
}
results.sampleEnd();// jmeter 結束統計響應時間標記
return results;
}
// 結束方法,實際執行時每個執行緒僅執行一次,在測試方法執行結束後執行
public void teardownTest(JavaSamplerContext arg0) {
}
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}
3)把java專案檔案匯出jar包,放在jmeter 的lib/ext 資料夾中,開啟jmeter新增一個jmeter 的java請求,選中測試類,會自動顯示reward引數(這個引數是在java請求類WriteResult 的方法中設定:
public Arguments getDefaultParameters()
params.addArgument("reward", "${reward}");
4、使用10個執行緒迴圈50次,可在本地儲存路徑下面看到儲存的結果追加檔案:
選擇其中一個檔案開啟,http請求返回的同類型全部儲存在同一個型別檔案裡面
相關推薦
jmeter新增http請求、java請求,將返回的json資料提取出來並將結果追加到一個檔案
jmeter新增http請求、java請求,將返回的json資料提取出來並將結果追加到一個檔案 抽獎活動返回的是json資料,所以需要先將返回的json字串裡面需要統計的欄位提取出來,此處需要統計的是reward欄位(reward即返回的獎品型別) 每個http請求都
PHP對接APP的介面類,可返回json資料,xml資料
<?php /* * APP資料處理類 * 作 者:永樂開發 * 日 期:2017.7.31 * 郵 箱:[email protected] * 博 客:http://www.isu5.cn http://it.alipea.com */ class R
解決WebApi,Mvc返回json資料遇見日期帶T
我們用webapi自帶的json序列化時,遇見資料庫datetime型別的日期中間會多加一個T,就像2017-09-09 22:11:26.267,而經過自帶的json處理後會變成2017-09-09T22:11:26.267。 解決辦法: 我們可以看到自帶的json有三
Jmeter取樣器:http請求、FTP請求
性能測試 sample sel 就會 交互 remote 原因 Coding logic 1.1.1 取樣器 8類可執行的元件中,取樣器是典型的不與其他元件發生交互作用的元件,邏輯控制器指對其子節點的取樣器有效,而其他元件(配置元件、定時器、斷言、監聽器)需要與取
關於HTTP請求、Ajax請求,請求的同步和非同步
使用了很長時間的Ajax請求了,一直都是在以非同步的方式在使用。昨天聽了一個講座涉及到apache server,偶然想到了這Ajax請求和HTTP請求的一些區別和聯絡,就在網上好好搜了一頓,把搜到的結果寫一下,理清一下自己的頭緒吧。 首先最早是沒有Ajax請求的,只有普通的HTTP請求,這個時候傳送一次HT
java傳送http get、post請求
/** * 向指定URL傳送GET方法的請求 * @param url 傳送請求的URL * @param param 請求引數,請求引數應該是 name1=value1&name2=value2 的形式。 */ publ
python urllib2 http get、post請求的區別
返回 sof left span outline text param quest apple python urllib2 實現HTTP 的GET POST 請求python 一般可以用模塊urllib2 來實現GET POST的http 請求GET 請求 im
Java傳送POST請求,引數為JSON格式,並接收返回JSON資料
/** * 傳送post請求 * @param url 路徑 * @param jsonObject 引數(json型別) * @param encoding 編碼格式 * @return * @throws P
獨立使用zuul閘道器分發不同服務的請求、許可權控制,非SpringCloud
閘道器api Gateway的重要性不言而喻,閘道器負責統一接收所有請求,然後根據不同的規則進行轉發到不同的服務。使用閘道器能夠統一的管理請求日誌、進行許可權控制、過濾等,這樣就能避免在每個單體應用中做重複的工作。這一篇主要是講zuul的獨立使用,就是隻作為一個獨立的專案進行
Java Web開發8__HTTP GET請求、POST請求的區別, 重寫 service() 方法
一 HTTP Get 請求, 開發者和使用者可以直接在瀏覽器中輸入URL,如果是在Servlet 類, doGet() 將被正常訪問,並輸入正確結果。 Get 請求, 可以在瀏覽器輸入 Servlet 的URL ,實現訪問。 二
C#模擬傳送http get、post請求的方式
1、WebRequest 同步方式: /// <summary> /// 向指定URL發起請求(可用於遠端傳送資料) /// </summary> /// <param name="url"> /
Tomcat伺服器與Http協議之請求(get請求、post請求)和響應
發展歷程 1、最早的web伺服器-NCSA(美國國家超級計算應用中心的縮寫),由於主要開發者的離開,讓其前景變得不明朗。所以一些開發者聚集在一起,對其進行了缺陷修復和增強程式碼,釋出了新的版本Apache,即:“打補丁後的Web伺服器(A Patchy Web
Jmeter二次開發——基於Java請求
# 簡述 這近幾年,越來越多非http的協議需要進行效能測試,包括不僅限於各類rpc、mq、快取等。對於這些協議,市面上可能沒有現成的工具可以直接使用,這個時候,我們可以自己動手,通過編寫相應的JavaSampler來高效地開展效能測試工作。 # 環境準備 - java環境已搭建ok - jmeter環境已
Java--對接微信第六篇之根據請求url及所需引數返回json
與微信對接就是與別人的介面對接,呼叫別人介面獲取微信資料的過程。 首先我們需要指定微信那邊需要什麼引數,介面返回哪些json資料。知道了這些,就只有呼叫介面的事情了。 所以,我們需要一個方法,能夠傳遞url+access_token+params然後將返回結果組裝成我們需要格式的方法。
Vue vue-resource 全域性攔截器 Post、Get、Jsonp跨域請求、配置請求 全域性路徑配置
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="../n
javaweb總結(九)--從jsp頁面傳送ajax請求,servlet接受引數並返回json資料
來自:https://blog.csdn.net/yanghan1222/article/details/78447231 今天遇到了問題把我難住了,解決之後就趕緊來記下來 這是一個很簡單的更新使用者的問題 先來看看專案所需jar包 接下來就是jsp頁面的東西
介面自動化之httpclient發get請求、post請求
package com.second; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.NameValuePair; import org.apac
springboot專案,請求可以進入controller,但返回結果報404
返回值: { "timestamp": 1507703410086, "status": 404, "error": "Not Found", "message": "Not Found", "path": "/as
list集合轉換成json資料,ajax請求返回json資料,再通過迴圈顯示出來
之前在網上查了很多關於迴圈顯示ajax返回值的方法,很多都不對的,顯示不了我要的結果。後來自己鼓搗出來了,發出來分享一下自己的成果。因為ajax不能返回集合的,需要把集合list轉換成json返回,再用迴圈的方式,顯示出結果。 操作層 //編碼方式request.set
java 通過傳送json,post請求,返回json資料
import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.InputStream; import java.io.InputStreamReader; import java