2016-09-01 67 views
0

我已經寫了這個腳本來驗證字段類型,但我不確定它是否被正確驗證。另外我想驗證所有預期的領域都看到了。 這是我的BSF斷言:Groovy腳本來驗證JMeter中的ResponseData

enter image description here

import groovy.json.*; 

def response = prev.getResponseDataAsString();  
def json = new JsonSlurper().parseText(response) 

def eventName = json.event_name 
(eventName.getClass() == String) 

def eventDate = json.event_start 
(eventDate.getClass() == Date) 

def attendeeLimit = json.attendee_limit 
(attendeeLimit.getClass() == Integer) 

def orderCount = json.order_count 
(orderCount.getClass() == Integer) 

def attendanceLimit = json.attendance_limit_on 
(attendanceLimit.getClass() == String) 
+0

你爲什麼要檢查的對象,而不是值的類型?你也在執行一個比較,但你缺少'assert'關鍵字。你能解釋一下你想要檢查什麼嗎? – albciff

+0

我想在這裏做兩件事:1.檢查所有預期的字段是否存在,即使它們可能具有空值。 2.驗證字段值是每個業務規則的特定類型,例如。字符串,數字,日期。 – Priya

回答

0
  1. 如果要檢查JSON響應數據類型的改變你的線條狀

    (eventName.getClass() == String) 
    

    assert eventName instanceof String 
    

    See Groovy Testing Guide的詳細信息

  2. 我建議從BSF聲明切換到JSR223 Assertion,因爲它能夠編譯腳本和緩存,因此您的腳本將執行得更好。請參閱Beanshell vs JSR223 vs Java JMeter Scripting: The Performance-Off You've Been Waiting For!文章以獲得全面的解釋和腳本編寫最佳實踐。


還有一個通過JMeter PluginsJSON Path Assertion可用,這其中主要是用於檢查響應內容