groovy 随机数、随机字母数字和日期的 JsonSlurper 断言
groovy JsonSlurper assertion for random number, random alphanumeric and date
我对服务测试还很陌生 Groovy。以下是我的回复,
{
encodedDiscountId=1275479,
encodedGuid=gOHSkGzQEee4-AJiXJP2jg,
expirationDate=2017-08-17 17:00:00
}
我需要以下断言的帮助:
- 我需要断言 DiscountId 值是否是 7 位长的随机数字。
- 我需要断言我得到的是带“-”的大写和小写字母数字
- 我需要断言过期日期应该是系统日期后的 30 天。
我尝试了脚本断言并不断收到此错误。
import groovy.json.JsonSlurper
def response = messageExchange.response.responseContent
def slurper = new JsonSlurper()
def json = slurper.parseText(response)
assert json.encodedDiscountId.size() == 7
assert json.encodedDiscountId.matches("[0-9]")
错误:
assert json.encodedDiscountId.matches("[0-9]") | | | | 1043947 false [encodedDiscountId:1043947, encodedGuid:l0wWcG2KEee4-AJiXJP2jg, expirationDate:2017-08-18 17:00:00]
您的正则表达式仅适用于字符 class 中的单个字符,从 0-9。您需要断言整个字符串都是数字,例如 /^[0-9]+$
.
^
匹配行首,$
匹配行尾,[0-9]+
表示至少有1个数字。由于 encodedDiscountId
看起来总是 7 位数字,因此您可以将其作为 ^[0-9]{7}$
.
包含在正则表达式中
因为正则表达式中有一个 $
如果您使用双引号,您需要将其转义为 $
("^[0-9]+$"
) 或使用斜杠字符串 (/^[0-9]+$/
) 或单引号 ('^[0-9]+$'
).
我对服务测试还很陌生 Groovy。以下是我的回复,
{
encodedDiscountId=1275479,
encodedGuid=gOHSkGzQEee4-AJiXJP2jg,
expirationDate=2017-08-17 17:00:00
}
我需要以下断言的帮助:
- 我需要断言 DiscountId 值是否是 7 位长的随机数字。
- 我需要断言我得到的是带“-”的大写和小写字母数字
- 我需要断言过期日期应该是系统日期后的 30 天。
我尝试了脚本断言并不断收到此错误。
import groovy.json.JsonSlurper
def response = messageExchange.response.responseContent
def slurper = new JsonSlurper()
def json = slurper.parseText(response)
assert json.encodedDiscountId.size() == 7
assert json.encodedDiscountId.matches("[0-9]")
错误:
assert json.encodedDiscountId.matches("[0-9]") | | | | 1043947 false [encodedDiscountId:1043947, encodedGuid:l0wWcG2KEee4-AJiXJP2jg, expirationDate:2017-08-18 17:00:00]
您的正则表达式仅适用于字符 class 中的单个字符,从 0-9。您需要断言整个字符串都是数字,例如 /^[0-9]+$
.
^
匹配行首,$
匹配行尾,[0-9]+
表示至少有1个数字。由于 encodedDiscountId
看起来总是 7 位数字,因此您可以将其作为 ^[0-9]{7}$
.
因为正则表达式中有一个 $
如果您使用双引号,您需要将其转义为 $
("^[0-9]+$"
) 或使用斜杠字符串 (/^[0-9]+$/
) 或单引号 ('^[0-9]+$'
).