国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

批量獲取用戶token,并使用jmeter對(duì)秒殺接口進(jìn)行壓力測(cè)試(黑馬點(diǎn)評(píng))

這篇具有很好參考價(jià)值的文章主要介紹了批量獲取用戶token,并使用jmeter對(duì)秒殺接口進(jìn)行壓力測(cè)試(黑馬點(diǎn)評(píng))。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

批量獲取用戶token,并使用jmeter對(duì)秒殺接口進(jìn)行壓力測(cè)試(黑馬點(diǎn)評(píng)),jmeter,壓力測(cè)試,java

????宏夏Coding網(wǎng)站,致力于為編程學(xué)習(xí)者、互聯(lián)網(wǎng)求職者提供最需要的內(nèi)容!網(wǎng)站內(nèi)容包括求職秘籍,葵花寶典(學(xué)習(xí)筆記),資源推薦等內(nèi)容。在線閱讀:https://hongxiac.com????

需求

現(xiàn)在有一個(gè)秒殺優(yōu)惠券的接口,需要模擬1000個(gè)不同登錄用戶下的秒殺場(chǎng)景,測(cè)試這個(gè)接口的性能。(黑馬點(diǎn)評(píng)項(xiàng)目秒殺接口多用戶壓力測(cè)試)

分析

1.如何模擬這1000個(gè)用戶?

我們可以使用for循環(huán)在數(shù)據(jù)庫(kù)中批量添加這1000個(gè)用戶,然后需要對(duì)這1000個(gè)用戶進(jìn)行登錄以獲取這1000個(gè)用戶的token,以便在jmeter發(fā)起的請(qǐng)求頭中攜帶這1000個(gè)token模擬1000個(gè)用戶。

2.如何批量獲取token?

編寫(xiě)腳本發(fā)起1000個(gè)登錄請(qǐng)求,并將響應(yīng)的token寫(xiě)入txt文件中。

實(shí)現(xiàn)

在編寫(xiě)腳本之前,我先聲明本項(xiàng)目的登錄流程、接口格式、響應(yīng)格式,方便大家進(jìn)行參照和修改。

1.登錄接口:

本項(xiàng)目使用的是手機(jī)號(hào)和驗(yàn)證碼登錄方式,這兩個(gè)參數(shù)攜帶在請(qǐng)求體(requestbody)中,而不是請(qǐng)求參數(shù)中(url路徑中),如果根據(jù)手機(jī)號(hào)登錄,需要將驗(yàn)證驗(yàn)證碼的代碼注釋掉(即注釋掉驗(yàn)證邏輯),以便直接根據(jù)手機(jī)號(hào)登錄而無(wú)需驗(yàn)證。

 ? ?/**
 ? ? * 登錄功能
 ? ? * @param loginForm 登錄參數(shù),包含手機(jī)號(hào)、驗(yàn)證碼;或者手機(jī)號(hào)、密碼
 ? ? */
 ? ?@PostMapping("/login")
 ? ?public Result login(@RequestBody LoginFormDTO loginForm, HttpSession session){
 ? ? ? ?String phone = loginForm.getPhone();
 ? ? ? ?String code = loginForm.getCode();
 ? ? ? ?if(phone == null){
 ? ? ? ? ? ?return Result.fail("手機(jī)號(hào)為空!");
 ? ? ?  }
// ? ? ?  if(code == null){
// ? ? ? ? ?  return Result.fail("驗(yàn)證碼為空!");
// ? ? ?  }
 ? ? ? ?return userService.login(loginForm, session);
 ?  }

2.登錄流程:

用戶登錄成功后,服務(wù)端會(huì)將token作為data數(shù)據(jù)返回給客戶端,并將token存儲(chǔ)到Redis中。之后客戶端將token添加到請(qǐng)求頭Authorization中,每次發(fā)起請(qǐng)求都需要攜帶該請(qǐng)求頭,后端攔截器會(huì)根據(jù)請(qǐng)求頭進(jìn)行用戶身份驗(yàn)證。

3.響應(yīng)格式:

用戶登錄成功服務(wù)端響應(yīng)格式

{"success":true,"data":"301130fd-7e25-4c93-8a79-9eb7d54c6fed"}//響應(yīng)體

批量獲取token腳本(Java)

思路:使用userService從數(shù)據(jù)庫(kù)中獲取用戶集合(這里使用的是Mybatis-plus),遍歷集合中的每個(gè)用戶,將用戶的手機(jī)號(hào)添加到請(qǐng)求體中,使用Java的Http客戶端發(fā)起請(qǐng)求。之后從json響應(yīng)體中獲取token并寫(xiě)入txt文件中。

編寫(xiě)測(cè)試類(lèi)(即腳本):

package com.hmdp.utils;
?
import com.hmdp.entity.User;
import com.hmdp.service.IUserService;
?
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.HttpClients;
?
import org.apache.http.util.EntityUtils;
import org.json.JSONObject;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
?
import java.io.BufferedWriter;
import java.io.FileWriter;
?
import java.util.List;
@SpringBootTest
public class UserLoginBatch {
?
 ? ?@Autowired
 ? ?private IUserService userService;
 ? ?
 ? ?@Test
 ? ?public void function(){
 ? ? ? ?String loginUrl = "http://localhost:8080/api/user/login"; // 替換為實(shí)際的登錄URL
 ? ? ? ?String tokenFilePath = "tokens.txt"; // 存儲(chǔ)Token的文件路徑
 ? ? ? 
 ? ? ? ?try {
 ? ? ? ? ? ?HttpClient httpClient = HttpClients.createDefault();
?
 ? ? ? ? ? ?BufferedWriter writer = new BufferedWriter(new FileWriter(tokenFilePath));
?
 ? ? ? ? ? ?// 從數(shù)據(jù)庫(kù)中獲取用戶手機(jī)號(hào)
 ? ? ? ? ? ?List<User> users = userService.list();
?
 ? ? ? ? ? ?for(User user : users) {
 ? ? ? ? ? ? ? ?String phoneNumber = user.getPhone();
?
 ? ? ? ? ? ? ? ?// 構(gòu)建登錄請(qǐng)求
 ? ? ? ? ? ? ? ?HttpPost httpPost = new HttpPost(loginUrl);
 ? ? ? ? ? ? ? ?//(1.如果作為請(qǐng)求參數(shù)傳遞)
 ? ? ? ? ? ? ? ?//List<NameValuePair> params = new ArrayList<>();
 ? ? ? ? ? ? ? ?//params.add(new BasicNameValuePair("phone", phoneNumber));
 ? ? ? ? ? ? ? ?// 如果登錄需要提供密碼,也可以添加密碼參數(shù)
 ? ? ? ? ? ? ? ?// params.add(new BasicNameValuePair("password", "user_password"));
 ? ? ? ? ? ? ? ?//httpPost.setEntity(new UrlEncodedFormEntity(params));
 ? ? ? ? ? ? ? ?// (2.如果作為請(qǐng)求體傳遞)構(gòu)建請(qǐng)求體JSON對(duì)象
 ? ? ? ? ? ? ? ?JSONObject jsonRequest = new JSONObject();
 ? ? ? ? ? ? ? ?jsonRequest.put("phone", phoneNumber);
 ? ? ? ? ? ? ? ?StringEntity requestEntity = new StringEntity(
 ? ? ? ? ? ? ? ? ? ? ? ?jsonRequest.toString(),
 ? ? ? ? ? ? ? ? ? ? ? ?ContentType.APPLICATION_JSON);
 ? ? ? ? ? ? ? ?httpPost.setEntity(requestEntity);
?
 ? ? ? ? ? ? ? ?// 發(fā)送登錄請(qǐng)求
 ? ? ? ? ? ? ? ?HttpResponse response = httpClient.execute(httpPost);
?
 ? ? ? ? ? ? ? ?// 處理登錄響應(yīng),獲取token
 ? ? ? ? ? ? ? ?if (response.getStatusLine().getStatusCode() == 200) {
 ? ? ? ? ? ? ? ? ? ?HttpEntity entity = response.getEntity();
 ? ? ? ? ? ? ? ? ? ?String responseString = EntityUtils.toString(entity);
 ? ? ? ? ? ? ? ? ? ?System.out.println(responseString);
 ? ? ? ? ? ? ? ? ? ?// 解析響應(yīng),獲取token,這里假設(shè)響應(yīng)是JSON格式的
 ? ? ? ? ? ? ? ? ? ?// 根據(jù)實(shí)際情況使用合適的JSON庫(kù)進(jìn)行解析
 ? ? ? ? ? ? ? ? ? ?String token = parseTokenFromJson(responseString);
 ? ? ? ? ? ? ? ? ? ?System.out.println("手機(jī)號(hào) " + phoneNumber + " 登錄成功,Token: " + token);
 ? ? ? ? ? ? ? ? ? ?// 將token寫(xiě)入txt文件
 ? ? ? ? ? ? ? ? ? ?writer.write(token);
 ? ? ? ? ? ? ? ? ? ?writer.newLine();
 ? ? ? ? ? ? ?  } else {
 ? ? ? ? ? ? ? ? ? ?System.out.println("手機(jī)號(hào) " + phoneNumber + " 登錄失敗");
 ? ? ? ? ? ? ?  }
 ? ? ? ? ?  }
?
 ? ? ? ? ? ?writer.close();
 ? ? ?  } catch (Exception e) {
 ? ? ? ? ? ?e.printStackTrace();
 ? ? ?  }
 ?  }
?
 ? ?// 解析JSON響應(yīng)獲取token的方法,這里只是示例,具體實(shí)現(xiàn)需要根據(jù)實(shí)際響應(yīng)格式進(jìn)行解析
 ? ?private static String parseTokenFromJson(String json) {
 ? ? ? ?try {
 ? ? ? ? ? ?// 將JSON字符串轉(zhuǎn)換為JSONObject
 ? ? ? ? ? ?JSONObject jsonObject = new JSONObject(json);
 ? ? ? ? ? ?// 從JSONObject中獲取名為"token"的字段的值
 ? ? ? ? ? ?String token = jsonObject.getString("data");
 ? ? ? ? ? ?return token;
 ? ? ?  } catch (Exception e) {
 ? ? ? ? ? ?e.printStackTrace();
 ? ? ? ? ? ?return null; // 解析失敗,返回null或者拋出異常,具體根據(jù)實(shí)際需求處理
 ? ? ?  }
 ?  }
}
?

運(yùn)行之后可得到存儲(chǔ)了1000個(gè)用戶token的txt文件

批量獲取用戶token,并使用jmeter對(duì)秒殺接口進(jìn)行壓力測(cè)試(黑馬點(diǎn)評(píng)),jmeter,壓力測(cè)試,java

Jmeter工具進(jìn)行壓力測(cè)試

這里使用到了Jmeter工具,如果不懂如何下載使用的后面會(huì)出一篇教程。

定義1000個(gè)線程即1000個(gè)用戶秒殺庫(kù)存100的優(yōu)惠券。

1.定義線程組

批量獲取用戶token,并使用jmeter對(duì)秒殺接口進(jìn)行壓力測(cè)試(黑馬點(diǎn)評(píng)),jmeter,壓力測(cè)試,java

2.設(shè)置導(dǎo)入的tokens數(shù)據(jù)文件

批量獲取用戶token,并使用jmeter對(duì)秒殺接口進(jìn)行壓力測(cè)試(黑馬點(diǎn)評(píng)),jmeter,壓力測(cè)試,java

3.設(shè)置HTTP信息頭管理器

批量獲取用戶token,并使用jmeter對(duì)秒殺接口進(jìn)行壓力測(cè)試(黑馬點(diǎn)評(píng)),jmeter,壓力測(cè)試,java

4.設(shè)置HTTP請(qǐng)求

批量獲取用戶token,并使用jmeter對(duì)秒殺接口進(jìn)行壓力測(cè)試(黑馬點(diǎn)評(píng)),jmeter,壓力測(cè)試,java

5.運(yùn)行并得到結(jié)果

批量獲取用戶token,并使用jmeter對(duì)秒殺接口進(jìn)行壓力測(cè)試(黑馬點(diǎn)評(píng)),jmeter,壓力測(cè)試,java

100條訂單數(shù)據(jù)批量獲取用戶token,并使用jmeter對(duì)秒殺接口進(jìn)行壓力測(cè)試(黑馬點(diǎn)評(píng)),jmeter,壓力測(cè)試,java

完成測(cè)試?。?!可以根據(jù)結(jié)果進(jìn)行分析啦!

今天的內(nèi)容就介紹到這啦,若對(duì)你有幫助的話就點(diǎn)個(gè)贊??吧~

關(guān)注博主,寶藏多多~文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-616539.html

到了這里,關(guān)于批量獲取用戶token,并使用jmeter對(duì)秒殺接口進(jìn)行壓力測(cè)試(黑馬點(diǎn)評(píng))的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • C#使用post方式調(diào)用接口獲取Token及調(diào)用網(wǎng)頁(yè)地址

    ?IP、Port表示地址及端口,可配置或?qū)懰?public string PostDate(string IP,string Port) ? ? ? ? { ? ? ? ? ? ? //設(shè)置參數(shù) ? ? ? ? ? ? string content= \\\"{\\\"userName\\\":\\\"\\\" 0000 \\\"\\\"\\\" + ? ? ? ? ? ? ? ? ?\\\",\\\"password\\\":\\\"123456\\\"}\\\"; ? ? ? ? ? ? //填充路徑 ? ? ? ? ? ? string strUrl = string.Format(\\\"http://{0}:

    2023年04月08日
    瀏覽(25)
  • JMeter 批量接口測(cè)試

    JMeter 批量接口測(cè)試

    ? 一、背景 最近在進(jìn)行某中臺(tái)的接口測(cè)試準(zhǔn)備,發(fā)現(xiàn)接口數(shù)量非常多,有6、70個(gè),而且每個(gè)接口都有大量的參數(shù)并且需要進(jìn)行各種參數(shù)驗(yàn)證來(lái)測(cè)試接口是否能夠正確返回響應(yīng)值。想了幾種方案后,決定嘗試使用JMeter的csv讀取來(lái)實(shí)現(xiàn)批量的接口測(cè)試。 接口測(cè)試實(shí)戰(zhàn)教程全套:

    2024年02月10日
    瀏覽(17)
  • Jmeter學(xué)習(xí)和一個(gè)關(guān)于jmeter獲取X-XSRF-TOKEN時(shí)的坑

    Jmeter學(xué)習(xí)和一個(gè)關(guān)于jmeter獲取X-XSRF-TOKEN時(shí)的坑

    現(xiàn)在想對(duì)一個(gè)接口做性能測(cè)試,需要測(cè)試它多個(gè)線程并發(fā)下的調(diào)用 略 一個(gè)完整的http接口包含請(qǐng)求頭和請(qǐng)求,這里就需要兩個(gè)組件:HTTP request、HTTP Header Manager。 2-1 HTTP request 需要填寫(xiě)以下內(nèi)容。 2-2 HTTP Header Manager 這里需要關(guān)注的是X-XSRF-TOKEN,它是動(dòng)態(tài)的。 如果是第一次發(fā)請(qǐng)

    2024年02月13日
    瀏覽(20)
  • Jmeter(三十一):制造大批量的用戶數(shù)據(jù)數(shù)據(jù)

    Jmeter(三十一):制造大批量的用戶數(shù)據(jù)數(shù)據(jù)

    需求:因測(cè)試需要,要造100w用戶數(shù)據(jù),通過(guò)用戶名、手機(jī)號(hào)、密碼可新增用戶,其中用戶名和電話號(hào)碼要求100w用戶不能重復(fù) 要點(diǎn): 1、通過(guò)Bean shell Sampler實(shí)現(xiàn)用戶名和手機(jī)號(hào)的足夠隨機(jī)。 符合我們常用規(guī)則的手機(jī)號(hào):第一位為1,第二位為3-9,后面的9位為0-9即可。 phone=${_

    2024年02月10日
    瀏覽(25)
  • 神馬搜索引擎批量推送網(wǎng)址token獲取+神馬站長(zhǎng)平臺(tái)地址申請(qǐng)

    神馬搜索引擎批量推送網(wǎng)址token獲取+神馬站長(zhǎng)平臺(tái)地址申請(qǐng)

    目錄 第一步:神馬token獲取 第一步:神馬賬戶格式導(dǎo)入 第三步:導(dǎo)入神馬推送鏈接 第四步:開(kāi)始神馬推送 神馬token獲取 如下圖登錄神馬站長(zhǎng)管理平臺(tái)獲取神馬token(注:每個(gè)域名對(duì)應(yīng)的token不同) 導(dǎo)入神馬賬戶格式 如下圖點(diǎn)擊“導(dǎo)入神馬token”按鈕,導(dǎo)入賬戶格式為T(mén)XT文件:

    2024年02月05日
    瀏覽(19)
  • JMeter循環(huán)讀取CSV文件實(shí)現(xiàn)接口批量測(cè)試

    目錄 前言: 1、添加線程組 2、添加HTTP信息頭管理器 3、添加HTTP請(qǐng)求 4、添加察看結(jié)果樹(shù) 5、添加循環(huán)控制器 6、在循環(huán)控制器下添加CSV配置文件

    2024年02月09日
    瀏覽(21)
  • 若依前后端分離版:增加新的登錄接口,用于小程序或者APP獲取token,并使用若依的驗(yàn)證方法

    若依前后端分離版:增加新的登錄接口,用于小程序或者APP獲取token,并使用若依的驗(yàn)證方法

    登錄校驗(yàn) ——AppLoginService類(lèi) ?具體代碼 ?具體代碼 ?具體代碼 此時(shí)運(yùn)行時(shí),會(huì)有沖突?。。?需要在 xxx-framework/src/main/java/....../SecurityConfig中條件 如圖: ?此時(shí)啟動(dòng)項(xiàng)目不會(huì)報(bào)沖突的錯(cuò) 千萬(wàn)千萬(wàn)要添加?。。?下圖中的LongUser類(lèi)要添加?xùn)|西 ?要在public String getPassword(){}中添加

    2024年02月07日
    瀏覽(91)
  • 小程序接口測(cè)試——獲取token

    小程序接口測(cè)試——獲取token

    ? code是微信小程序授權(quán)登錄的重要參數(shù),獲取code的作用主要有以下三個(gè): 1、作為前端向后端發(fā)送請(qǐng)求的參數(shù),用于向微信服務(wù)器驗(yàn)證用戶身份和獲取用戶信息; 2、作為后端向微信服務(wù)器請(qǐng)求access_token的參數(shù),用于后續(xù)數(shù)據(jù)交互的Token; 3、作為前端向后端請(qǐng)求用戶信息的標(biāo)

    2024年02月05日
    瀏覽(19)
  • postman登錄獲取token,接口header中添加token發(fā)送請(qǐng)求

    postman登錄獲取token,接口header中添加token發(fā)送請(qǐng)求

    該文章只是用于記錄,防止自己忘記。 1、準(zhǔn)備登錄接口 2、添加全局變量 3、添加一個(gè)登錄接口,登錄獲取token,將獲取到的token設(shè)置到全局變量中 4、密碼加密 var password = pm.environment.get(“password”);//獲取環(huán)境變量password的值 var md5Password= CryptoJS.MD5(password).toString();//使用MD5()方

    2024年02月10日
    瀏覽(18)
  • 自動(dòng)化測(cè)試平臺(tái)(三):用戶token驗(yàn)證及用戶增刪改查接口開(kāi)發(fā)

    上一篇我們實(shí)現(xiàn)了用戶登錄的驗(yàn)證并返回token。那如何去校驗(yàn)請(qǐng)求的token是否有效呢?這篇內(nèi)容為你講解token的驗(yàn)證及用戶管理(增刪改查)的功能。 完整教程地址:《從0搭建自動(dòng)化測(cè)試平臺(tái)》 項(xiàng)目在線演示地址:http://121.43.43.59/ (帳號(hào):admin 密碼:123456)

    2024年02月03日
    瀏覽(27)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包