<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      用Groovy處理JMeter斷言和日志

      本篇文章內(nèi)容主要是分享一下jmeter除BeanShell之外的另外一種腳本語言Groovy。

      查閱完官方文檔得出結(jié)論,腳本語言如:Groovy,在jmeter體系中基本說是全能的,例如:處理請求、響應(yīng)、參數(shù)、變量以及收集器和監(jiān)聽器(這些以后有機(jī)會再寫文章,有需求的請異步官方Demo)。總的來講,jmeterGroovy語法兼容性一般,還是得老老實實按照Java的語法來寫比較穩(wěn)妥,主要還是需要用jmeter自己的API,需要一點(diǎn)時間學(xué)習(xí)和實踐。

      序言

      Apache JMeter斷言是測試人員能夠設(shè)置標(biāo)準(zhǔn)的組件,這些標(biāo)準(zhǔn)確定將響應(yīng)視為“通過”還是“失敗”。您可以使用斷言來確保樣本和子樣本的返回值與預(yù)期結(jié)果匹配,也可以將其應(yīng)用于JMeter變量。它們將在同一范圍內(nèi)的每個采樣器之后執(zhí)行。

      JMeter包含許多斷言元素,用于驗證采樣器的響應(yīng)。

       

       

      但是,有時需要驗證決定可能遵循復(fù)雜和高級的邏輯,并且無法使用開箱即用的JMeter斷言進(jìn)行配置。例如,確認(rèn)JSON響應(yīng)的有效性,然后評估響應(yīng)的值,并具有調(diào)試問題的自定義失敗消息。

      Groovy腳本語言非常適合編寫簡潔且可維護(hù)的測試,以及所有構(gòu)建和自動化任務(wù)。Groovy與Java和任何第三方庫無縫且透明地集成在一起,從而使使用JMeterJava開發(fā)人員易于使用。與其他可用的腳本語言(例如BeanShell)相比,諸如Power Assertion之類的功能使Groovy中的測試和斷言變得輕松簡潔。

      進(jìn)入正題

      本Demo使用jmeter5.12版本,。

      在以下Demo中,我們要測試服務(wù)器響應(yīng)是否包含結(jié)構(gòu)良好的JSON。我們將通過我們的應(yīng)用程序服務(wù)器運(yùn)行一個請求,并且我們期望收到一個結(jié)構(gòu)化的JSON,校驗結(jié)構(gòu)化的JSON包含固定字段的值。

      由于我們知道期望在響應(yīng)中接收哪些鍵,以及應(yīng)該分配給它們的值,因此我們可以使用Groovy斷言來斷言響應(yīng)。

      1.簡單的開始

      該腳本包括一個線程組和一個采樣器。

      2.添加斷言

      使能夠使用Groovy作為腳本語言:JSR223。

      右鍵單擊采樣器->添加->斷言->JSR223斷言

       

       

      3.元素配置

      設(shè)置以下屬性:腳本語言:Groovy 2.xx,如下圖:

       

       

      JSR223斷言字段說明:

      • 名稱:元素名稱
      • 語言:要使用的腳本語言(GroovyBeanShellJS等)
      • 參數(shù):傳遞給腳本的參數(shù)。參數(shù)存儲在以下變量中:參數(shù),參數(shù)
      • 文件名:預(yù)制腳本文件的路徑。將覆蓋主腳本字段中編寫的所有腳本
      • 腳本編譯緩存:啟用此選項時,JSR223斷言(或與此相關(guān)的任何其他JSR223元素)可以預(yù)編譯代碼并將其緩存。這將大大提高性能。“如果可用”表示僅適用于JSR223兼容腳本。JavaJavaScriptBeanshell可以在JSR223斷言中使用,但是與Groovy相反,它們與JSR223的接口不兼容。
      • Beanshell元素相比,腳本編譯緩存是使用JSR223元素的主要優(yōu)點(diǎn)。

      4.編寫腳本

      腳本內(nèi)容:

      import groovy.json.*
      
      log.info("線程組名字 " + prev.getThreadName())
      def end_time = prev.getEndTime()
      log.info("結(jié)束時間 " + (new Date(end_time).toString()))
      log.info("響應(yīng)結(jié)果: " + prev.getTime().toString())
      log.info("Connect Time is: " + prev.getConnectTime().toString())
      log.info("Latency is: " + prev.getLatency().toString())
      log.info("響應(yīng)大小" + prev.getBytesAsLong().toString())
      log.info("請求url " + prev.getURL())
      log.info("測試結(jié)果是 " + prev.isSuccessful().toString())
      
      def response = prev.getResponseDataAsString()
      log.info("響應(yīng)內(nèi)容是:" + response)
      
      def json = new JsonSlurper().parseText(response)
      log.info("響應(yīng)code" + json.success)
      
      assert 2 == json.success
      
      log.info("響應(yīng)頭響應(yīng)行是 " + prev.getResponseHeaders())

      該腳本除了簡單驗證了響應(yīng)結(jié)果中success字段值意外,還驗證了prev的幾個基本的API以及jmeter日志使用。其他的常用的API以后有機(jī)會我會寫一點(diǎn),有需求的移步官方文檔和Demo。

      該腳本從導(dǎo)入JSON Slurper開始。JSON SlurperJSON文本或閱讀器內(nèi)容解析為Groovy數(shù)據(jù)結(jié)構(gòu)。這里說明一下,import使用的是jmeter自帶的Groovy庫,并不是本地的Groovy環(huán)境配置下面libs里面的庫,如果想增加功能,比如去修改jmeter里面的Groovy依賴,不過我并不建議,太麻煩了。而且自帶的已經(jīng)夠用了。

      5.運(yùn)行腳本

      響應(yīng)失敗:

       

       

       在此響應(yīng)中,json.success的值為1,而不是2。

      posted @ 2023-03-09 09:38  BUGMANWL  閱讀(281)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 日韩精品卡1卡2日韩在线| 国产成人精品无码播放| 水蜜桃精品综合视频在线| 一区二区三区鲁丝不卡| 武城县| 亚洲性日韩精品一区二区| 国产亚洲日韩在线aaaa| 又黄又硬又湿又刺激视频免费| 在线无码免费的毛片视频| 无码天堂亚洲国产av麻豆| 登封市| 亚洲男人第一无码av网站| 太深太粗太爽太猛了视频| 高清自拍亚洲精品二区| 国产suv精品一区二区五| 无码天堂亚洲国产av麻豆| 尤物yw193无码点击进入| 国产在线观看免费观看不卡| 国产永久免费高清在线| 亚洲不卡一区二区在线看| 色护士极品影院| 精品国产乱码久久久久久浪潮| 久青草国产在视频在线观看| 亚洲无码精品视频| 国产精品不卡区一区二| 久久精品青青大伊人av| 国产精品国产三级国产午| 亚洲国产一区二区三区| 国产粉嫩美女一区二区三| 99精品国产丝袜在线拍国语| 免费视频爱爱太爽了| 成人午夜av在线播放| 午夜福利在线观看成人| 亚洲日韩av在线观看| 国产精品亚洲а∨天堂2021| 在线精品视频一区二区三四| 久久亚洲2019中文字幕| 东京热一精品无码av| 精品无码久久久久久尤物| 国产精品有码在线观看| 乱熟女高潮一区二区在线|