1

2 つのアサーションを含む 1 つのテスト ステップがあります。

  • SOAP フォルトではない
  • 含む。条件は、応答に「メッセージが正常に送信されました」が含まれている必要があることです

これで、このテスト ステップを実行する 1 つの Groovy スクリプトができました。この groovy スクリプトを使用して、アサーション名、値、およびステータスを出力する必要があります。以下は私が書いたコードです:

testStepSrc = testCase.getTestStepByName(testName)
Assertioncounter = testStepSrc.getAssertionList().size()
for (AssertionCount in 0..Assertioncounter-1)
{
log.info("Assertion :" + testStepSrc.getAssertionAt(AssertionCount).getName() + " :: " + testStepSrc.getAssertionAt(AssertionCount).getStatus())

error = testStepSrc.getAssertionAt(AssertionCount).getErrors()
if (error != null)
   {
    log.error(error[0].getMessage())
   }
 }

しかし、出力では次のように表示されます:

Wed Sep 04 17:21:11 IST 2013:INFO:Assertion :Not SOAP Fault :: VALID
Wed Sep 04 17:21:11 IST 2013:INFO:Assertion :Contains :: VALID

ご覧のとおり、アサーション名とステータスは出力できますが、「Contains」アサーションの値は出力できません。特定のアサーションの値を取得する方法を教えてください。

前もって感謝します。

4

2 に答える 2

1

だからここにあなたが読むべきいくつかのことがあります

そして私が試したこと

def assertionsList = testRunner.getTestCase().getTestStepByName("Test Step Name").getAssertionList()
for( e in assertionsList){
    log.info e.getToken() //gives the value of the content to search for
    log.info e.DESCRIPTION
    log.info e.ID
    log.info e.LABEL
    log.info e.toString()
}

これにより、次の出力が得られます

Wed Sep 04 15:12:19 ADT 2013:INFO:Abhishek //the contains assertion was checking for the word "Abhishek" in the response of my test step where the assertion was applied.
Wed Sep 04 15:12:19 ADT 2013:INFO:Searches for the existence of a string token in the property value, supports regular expressions. Applicable to any property. 
Wed Sep 04 15:12:19 ADT 2013:INFO:Simple Contains
Wed Sep 04 15:12:19 ADT 2013:INFO:Contains
Wed Sep 04 15:12:19 ADT 2013:INFO:com.eviware.soapui.impl.wsdl.teststeps.assertions.basic.SimpleContainsAssertion@c4115f0
于 2013-09-04T18:14:48.123 に答える
0

Abhishek の応答には、私が信じている回答が含まれていましたが、探していた形式ではありませんでした。

カスタム レポートについて同じ情報を探していましたが、SoapUI フォームを掘り下げた後、これを見つけました。

あなたが探していると私が信じているコードは次のとおりです。

log.info e.getToken()

ただし、これはエラーが発生した場合にのみ取得する方法の例ですが、次のようなものを使用して有効なシナリオで取得できます。

def iAssertionName = assertionNameList[j]
def iAssertionStatus = testStep.getAssertionAt(j).getStatus().toString()
def tstep = testStep.getName()
def gStatus =  testStep.getAssertionAt(j).status
def expect = testStep.getAssertionAt(j).getToken()
log.info "Expected Content: " + expect

これは私のコードのサブセットですが、ログ メッセージが生成されます。

Fri Sep 20 11:04:09 CDT 2013:INFO:Expected Content: success

私の SoapUI スクリプト アサーションは、応答に文字列 "success" が含まれているかどうかを確認していました。

回答ありがとうございます。

于 2013-09-20T16:12:54.933 に答える