httprunner(1.5.8)结果提取优化:提取失败时可返回用户定义的默认值

一般情况下,接口某个返回字段如果是空的,很可能就不会返回该字段,由前端来逻辑判断。

比如:用户信息接口中,性别不是必要字段,该字段为空时,查询用户信息的接口中很可能就不会带有该字段

那么此时使用httprunner来提取该字段,就会直接报错。而实际情况是,该用户未填写性别字段,该字段为空而已,并非接口错误。

所以在这种情况下,应该给接口用例开发者提供方法,用于提供字段失败时返回的默认值

就类似在jmeter的json提取器中,如果某属性提取失败,开发者可以提供默认值。

情况就是这样,下面看代码

需要优化的代码是Lib\site-packages\httprunner\utils.py文件中query_json函数

原代码如下,可以看到,如果提取失败,直接就报错了。要做的优化就是把直接报错,改成可由用户来定义报错还是返回默认值

httprunner(1.5.8)结果提取优化:提取失败时可返回用户定义的默认值

优化思路就是,在提取路径中,用户可添加默认值,以冒号分割(其他符号应该可以,开发者自定义吧)。代码中对提取路径分割,如果用户提供了默认值,那么即使提取失败,也不会报错,而返回默认值;如果未提取,那走原来逻辑。

优化代码如下,很简单,就是加了5行,做了判断而已。
httprunner(1.5.8)结果提取优化:提取失败时可返回用户定义的默认值

使用形式就如下图,有效。优化到此。
httprunner(1.5.8)结果提取优化:提取失败时可返回用户定义的默认值