Xuất phát từ câu hỏi 1 bạn nên mình viết luôn 1 bài về cái JSR223 Assertion này.
Bạn ấy nhận được 1 response kiểu như thế này:
Case pass:
{
"responseDescription": "OK",
"processCode": "00000"
...
}Case fail:
{
"responseDescription": "Sender and Receiver should not be the same party",
"processCode": "10005"
...
}Bạn ấy muốn assert theo rule như sau:
trong response nếu "responseCode": "00000" thì success, nếu khác "responseCode": "00000" thì fail
Cách bạn ấy làm là dùng Response Assertion và test Substring.

Tuy nhiên, vấn đề là cái message khi fail sẽ là Test failed: text expected to contain /00000/, trong khi cái bạn ấy muốn là Sender and Receiver should not be the same party, mà cái này nằm bên trong response.

Để làm được việc này, thì chỉ có cách custom Assertion failure message. Mình làm như sau:
- Tạo 1 JSR223 Assertion
- Viết script
import groovy.json.JsonSlurper
def slurper = new JsonSlurper()
def response = slurper.parseText(prev.getResponseDataAsString())
if (response.processCode != "00000"){
AssertionResult.setFailure(true)
AssertionResult.setFailureMessage(response.responseDescription)
}Đoạn code này như sau:
- Read cái response từ String –> Json object
- Kiểm tra xem value của key
processCodemà khác"00000"thì sẽ assertion fail và set Failure Message là value của keyresponseDescription

Ở đây mình dùng biến được tạo sẵn AssertionResult và set result và message là xong
- setFailure(true)
- setFailureMessage(response.responseDescription)

Full list method của AssertionResult có ở đây.

Tuy nhiên, mình thấy là chả có cái method nào hữu ích ngoài 2 cái method ở trên. LOL
Vậy thôi, xin chào và hẹn gặp lại các bạn ở bài tiếp theo.