使用LuckyFrame协议模板初始化HTTP JSON请求,注意这些事情
2018-12-14 15:12:00
Seagull

在HTTP协议模板中请求JSON格式的报文,当你需要在用例步骤中替换参数时,替换参数请求对象的类型封装目前分为四种: String、Integer、Long、BigDecimal、Boolean,所以当你需要替换其中除了String以外的其他类型参数时,在协议模式中就必须初始化成对应的类型,而不能用0、null等来代替。


正常的写法比如:
{"name":"tom","sex":"男","age":24,"tel":137657767762,"height":175.5,"married":false}

错误示例1:{"name":"tom","sex":"男","age":24,"tel":0,"height":175.5,"married":false} 

这时候假如我想替换"tel"的参数值时,在用例步骤的参数列这样写:tel#137666565562


如果你写成这样的JSON,首先系统在初始化原始JSON的时候,会把你的替换参数(比如:137666565562)按照整型(Integer)去转换,那么肯定会转换抛出异常,因为电话号码(Long型)长度已经超长。



错误示例2:{"name":"tom","sex":"男","age":24,"tel":137657767762,"height":170,"married":false}

这时候假如我想替换"height"的参数值时,在用例步骤的参数列这样写:height#175.5


如果你写成这样的JSON,首先系统在初始化原始JSON的时候,会把你的替换参数(比如:175.5)按照整型(Integer)去转换,那么肯定会转换抛出异常,因为替换参数值175.5(BigDecimal型)没办法转换成整形。



错误示例3:{"name":"tom","sex":"男","age":24,"tel":137657767762,"height":175.5,"married":null}

这时候假如我想替换"married"的参数值时,在用例步骤的参数列这样写:married#false


如果你写成这样的JSON,首先系统在初始化原始JSON的时候,没有办法识别你的参数【"married":null】到底是什么类型,没办法识别的情况下,会把替换参数默认设置成String类型,最终替换后的参数会是这样的:{"name":"tom","sex":"男","age":24,"tel":137657767762,"height":175.5,"married":"false"}   这就导致married的值变成了String类型,而不是原始所想的Boolean类型了。