HttpRunner内置断言与函数详解
前言
HttpRunner作为一款优秀的接口测试框架,提供了丰富的内置断言和函数功能,帮助测试工程师高效完成接口测试验证工作。本文将深入解析HttpRunner中的内置断言机制和常用函数,帮助读者全面掌握这些核心功能。
内置断言机制
断言基本结构
HttpRunner的断言验证遵循特定的JSON格式,包含四个关键字段:
{
"check": "status_code", // 要检查的目标字段,通常与jmespath配合使用
"assert": "equals", // 断言方法,可使用内置方法或自定义函数
"expect": 200, // 期望值
"msg": "检查响应状态码" // 可选,断言失败时显示的消息
}
断言方法详解
HttpRunner提供了丰富的断言方法,覆盖了各种测试场景的需求。下面分类介绍这些断言方法:
数值比较类
-
相等判断:
eq/equals/equal
: 判断实际值等于期望值- 示例:
9 eq 9
返回true
-
大小比较:
lt/less_than
: 判断实际值小于期望值le/less_or_equals
: 判断实际值小于等于期望值gt/greater_than
: 判断实际值大于期望值ge/greater_or_equals
: 判断实际值大于等于期望值ne/not_equal
: 判断实际值不等于期望值
字符串处理类
-
字符串比较:
str_eq/string_equals
: 将值转为字符串后比较- 示例:
123 str_eq '123'
返回true
-
字符串匹配:
startswith
: 判断字符串以指定内容开头endswith
: 判断字符串以指定内容结尾regex_match
: 使用正则表达式匹配字符串
长度判断类
-
精确长度:
len_eq/length_equals/length_equal
: 判断长度等于期望值- 示例:
'abc' len_eq 3
返回true
-
长度范围:
len_gt/count_gt/length_greater_than
: 判断长度大于期望值len_ge/count_ge/length_greater_or_equals
: 判断长度大于等于期望值len_lt/count_lt/length_less_than
: 判断长度小于期望值len_le/count_le/length_less_or_equals
: 判断长度小于等于期望值
集合判断类
- 包含关系:
contains
: 判断集合包含指定元素contained_by
: 判断元素包含于指定集合- 示例:
'a' contained_by 'abc'
返回true
类型判断类
- 类型匹配:
type_match
: 判断两个值的类型相同- 示例:
123 type_match 1
返回true
内置函数详解
HttpRunner还提供了一系列实用函数,方便在测试过程中使用:
-
时间相关函数:
get_timestamp()
: 获取当前时间的13位时间戳sleep(n)
: 暂停执行n秒,模拟思考时间
-
随机处理函数:
gen_random_string(n)
: 生成n位随机字符串
-
数值处理函数:
max(m, n)
: 返回两个数字中的较大值
-
加密函数:
md5(s)
: 计算字符串s的MD5值
最佳实践建议
-
断言选择:根据测试需求选择合适的断言方法,数值比较优先使用
eq
而非str_eq
-
错误信息:为重要断言添加msg字段,便于定位问题
-
性能考虑:合理使用
sleep
函数,避免不必要的等待时间 -
随机数据:使用
gen_random_string
生成测试数据时,注意长度和字符集是否符合业务要求
总结
HttpRunner内置的断言和函数为接口测试提供了强大的支持,掌握这些功能可以显著提升测试效率和准确性。建议读者在实际项目中多加练习,灵活运用这些功能来满足各种测试场景的需求。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考