JMeterToken使用全攻略

一、從JMeterToken中提取

JMeterToken是JMeter中的一種鑒權機制,在JMeter測試過程中非常重要。但是我們在接口調用過程中需要獲取JMeterToken的值,一般情況下JMeterToken是通過Cookie傳遞的。我們可以通過使用正則表達式或者JMeter內置的PostProcessor等方式從返回的接口響應中提取出JMeterToken的值。

//使用正則表達式提取
//假設響應中包含了 token=xxx 的字符串,我們可以使用如下的 PostProcessor 來提取出值:
Regular Expression Extractor
- Apply to: Main sample and sub-samples
- Reference Name: JMeterToken
- Regular Expression: token=(.+?)
- Template: $1$

通過使用上述的PostProcessor,即可將JMeterToken的值存儲到變量JMeterToken中使用。

二、JMeterToken和Cookie

如上所述,JMeterToken是通過Cookie傳遞的。當我們訪問登錄接口的時候,服務器會生成一個JMeterToken的值,並將其寫入Cookie中,然後返回給客戶端。客戶端在後續請求中需要將JMeterToken的值作為Cookie發送給服務器,以完成接口的鑒權。

//使用HTTP Cookie Manager配置Cookie信息
//以下是配置HTTP Cookie Manager的方法:
HTTP Cookie Manager

//接下來即可發送請求,並自動使用Cookie

三、JMeterToken值傳遞

在測試複雜業務場景時,可能需要JMeterToken的值能夠在多個請求之間進行傳遞。我們可以使用JMeter中的變量來實現這一點。需要將從響應中提取出的JMeterToken的值存在一個變量中,然後在需要使用的請求中使用該變量。

//以下為設置變量的方法:
User Defined Variables
- Name: JMeterToken
- Value: ${JMeterToken}

通過上述方式設置變量後,在接口調用過程中需要使用JMeterToken的值的地方,具體值使用 ${JMeterToken} 表示即可。

四、JMeterToken不合法

在某些情況下,JMeterToken的值可能會不合法,這時候需要對其進行處理。

//以下為判斷變量是否存在、是否為空、是否合法的方法:
BeanShell Assertion
- Script:
if(vars.get("JMeterToken")!=null 
   && !vars.get("JMeterToken").isEmpty()
   && !vars.get("JMeterToken").equals("invalid")){
    // do something
}else{
    AssertionResult.setFailure(true);
    AssertionResult.setFailureMessage("JMeterToken is not valid!");
}

通過使用上述的斷言,在檢查JMeterToken的值是否合法時可以給出必要的提示。

五、JMeterToken怎麼處理

在測試過程中,我們需要對JMeterToken進行處理。我們可以通過使用PreProcessor、PostProcessor、Beanshell等方式,在請求發送之前或者響應獲取之後進行處理。

//以下為將JMeterToken值添加到請求的Headers中的方法:
HTTP Header Manager
- Name: JMeterHeaders
- Value: token=${__eval(${JMeterToken})}

通過使用上述的Header Manager,在請求中添加了JMeterToken的值的Header後續請求即可攜帶該值。

六、JMeterToken傳不進去

在一些需要通過JMeterToken進行鑒權的請求中,如果直接使用變量引用JMeterToken的值可能會失敗。這時候我們需要進行一些特殊處理。

//以下為通過Beanshell進行特殊處理的方法:
BeanShell PreProcessor
- Script:
String token = vars.get("JMeterToken");
String cookie = "token="+token;
props.put("Cookie", cookie);

通過使用上述的PreProcessor,我們將生成的Cookie值直接存儲到JMeter的全局屬性中,以便後續的請求中可以直接使用。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/197613.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-03 20:05
下一篇 2024-12-03 20:05

相關推薦

  • Python離線庫打包全攻略

    Python離線庫打包是將Python程序所依賴的庫文件打包成一個獨立的文件,以便在不安裝Python環境的情況下運行Python程序。下面我們將從以下五個方面詳細闡述Python…

    編程 2025-04-27
  • Python web開發全攻略

    Python作為一門高性能、易學易用的編程語言,被廣泛應用於web開發。我們將從多個方面來探究Python在web開發中的應用場景和實現方法。 一、Django框架 Django是…

    編程 2025-04-27
  • Spring Boot面試全攻略

    一、Spring Boot簡介 Spring Boot是Spring框架的後續版本,簡化了Spring的配置,讓使用Spring更加方便快捷。使用Spring Boot可以實現快速…

    編程 2025-04-23
  • Python查看庫版本全攻略

    Python是一種簡單易學的編程語言,被廣泛應用於各種領域,包括自然語言處理、機器學習、人工智能等。在開發Python應用程序時,我們常常需要使用第三方庫或模塊。在某些情況下,我們…

    編程 2025-04-02
  • 小程序日曆全攻略

    一、小程序日曆授權 第一步,要讓小程序獲取用戶的授權,才能使用小程序日曆。授權方式如下: wx.authorize({ scope: ‘scope.calendar’, succe…

    編程 2025-02-25
  • Python遍歷List全攻略

    一、Python遍歷List中嵌套字典 在Python中,List中可以放置不同類型的數據,包括字典。如果List中嵌套了字典,我們可以通過兩種方式進行遍歷: 1、使用for循環嵌…

    編程 2025-02-24
  • Mac Android開發全攻略

    一、Mac Android Studio Mac Android Studio是一個非常流行的集成開發環境(Integrated Development Environment,I…

    編程 2025-02-24
  • Docker安裝Python全攻略

    一、Docker安裝Python3 Docker是一個開源的容器化平台,Python是一種高級編程語言,兩者的結合可以讓Python的開發、打包、部署變得更加簡單、快速、可靠。 在…

    編程 2025-02-05
  • Linux解壓WAR文件全攻略

    一、什麼是WAR文件 1、WAR文件是Java Web應用的打包格式。它是一種使用ZIP壓縮格式的歸檔文件,裡面包括了所有用於運行Web應用程序的相關內容,包括Java類文件、Ja…

    編程 2025-02-01
  • JS控制滾動條滾動全攻略

    一、JS控制滾動條滾動指定位置 在一些情況下,我們希望通過JS控制滾動條滾動到某一個特定的位置。這個時候我們可以使用JS的 scrollTop 屬性。 window.scrollT…

    編程 2025-01-13

發表回復

登錄後才能評論