2017-05-24 254 views
0

更新: 我想檢查他的結構上的JSON文檔。我用語言groovy創建了一個JSR223斷言。我檢查JSON結構的代碼如下所示:JMeter聲明與groovy失敗

import groovy.json.*; 
import org.apache.jmeter.samplers; 

def response = prev.getResponseDataAsString(); 
log.info("Response" + response); 
def json = new JsonSlurper().parseText(response); 

//tests 
def query = json.query; 
assert query instanceof String; 

def totalResults = json.totalResults; 
assert query instanceof Integer; 

def from = json.from; 
assert from instanceof Integer; 

def to = json.to; 
assert to instanceof Integer; 

assertionResult = new AssertionResult("Assertion failed! See log file."); 
assertionResult.setError(true); 
assertionResult.setFailureMessage(e.toString()); 

JMeter日誌文件中的驗證很有用。 但在我看來結果樹,我得到了以下錯誤消息:

Assertion error: true 
Assertion failure: false 
Assertion failure message: javax.script.ScriptException: org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: 
Script27.groovy: 2: unable to resolve class org.apache.jmeter.samplers 
@ line 2, column 1. 
    import org.apache.jmeter.samplers; 
^

Script27.groovy: 21: unable to resolve class AssertionResult 
@ line 21, column 19. 
    assertionResult = new AssertionResult("Assertion failed! See log file."); 
        ^

2 errors 

我想看看測試結果是成功還是失敗。

如何解決這個問題?

+0

你是否嘗試像dmitri一樣直接使用它? https://stackoverflow.com/questions/44153653/jmeter-beanshell-groovy-script-doesnt-work?noredirect=1#comment75326344_44153653 – ararar

回答

1
  1. 不要實例AssertionResult類,它是預先定義

    JSR223 Assertion Result

  2. 不要使用Groovy assert keyword它不會失敗父採樣爲預計,請參閱下面的示例簡單代碼

    if (1 != 2) { 
        AssertionResult.setFailure(true) 
        AssertionResult.setFailureMessage("1 is not equal to 2") 
    } 
    

    ,一旦你得到它的工作如下圖所示:

    JSR223 Assertion sample

    您可以根據需要

How to Use JMeter Assertions in Three Easy Steps指南來了解更多關於JMeter的測試使用斷言開始修改你的測試。