假设现在有一个需求,当访问地址时,响应信息中包括origin字段,返回值为一个ip地址格式,需求是校验它是否符合A类的IPv4地址
引用维基百科解释:

讯享网
A类IPv4地址经过进一步整理得到的范围为:,即我们的需求目的就是校验origin字段返回值是否在A类IPv4地址范围内。
明确需求后,我们接下进入设计用例
首先,我们在文件中定义一个校验是否为A类IPv4的方法,这样写的目的是为了在执行测试用例前,做一个前置判断,完成稍微复杂的测试场景
讯享网
其次,在testcase目录下新建一个文件,命名为:,编写一个测试用例,如下:
讯享网
部分测试用例结构解释:
config
- name(必须):测试用例的名称,将在log和报告中展示。
- base_url(可选):测试用例中的通用Host,如果base_url被指定,测试步骤中的url只能写相对路径。当你要在不同环境下测试时,这个配置非常有用
- verify(可选的):指定是否验证服务器的TLS证书。如果我们想记录测试用例执行的HTTP流量,这将特别有用,因为如果没有设置verify或将其设置为True,则会发生SSLError。
teststeps
- name(必须):name用来定义测试步骤 name,将出现在log和测试报告中
- variables(可选的):测试步骤中定义的变量,作用域为当前测试步骤。如果想在多个测试步骤中共享变量,需要在config variables中定义。测试步骤中的变量,会覆盖config variables中的同名变量。
- extract(可选):从当前 HTTP 请求的响应结果中提取参数,并保存到参数变量中(例如token),后续测试用例可通过$token的形式进行引用。原理:利用jmespath 提取Json response body的内容。
- request(必须):
- METHOD(必须):http方法
- URL(必须):设置Url,如果base_url在config中设置了,url只能是相对路径部分
- HEADERS(可选):设置请求的headers
- validate(可选):测试用例中定义的结果校验项,作用域为当前测试用例,用于实现对当前测试用例运行结果的校验。
原理:用 jmespath 提取Json response的内容,并进行断言校验。

运算符包括:
- equal: 等于
- contained_by: 实际结果是否被包含在预期结果中
- contains: 预期结果是否被包含在实际结果中
- endswith: 以…结尾
- greater_or_equals: 大于等于
- greater_than: 大于
- length_equal: 长度等于
- length_greater_or_equals: 长度大于等于
- length_greater_than: 长度大于
- length_less_or_equals: 长度小于等于
- length_less_than: 长度小于
- less_or_equals: 小于等于
- less_than: 小于
- not_equal: 不等于
- regex_match: 字符串是否符合正则表达式匹配规则
- startswith: 以…开头
- string_equals: 字符串相等
- type_match: 类型是否匹配
- jmespath: jmespath表达式,详见JMESPath Tutorial
- expected_value: 指定期望值或变量,也可以调用方法
- message(optional): 用于描述断言失败原因
使用hrun命令执行yaml文件,并且追加生成html报告的命令
- 执行测试用例的完整写法如下

这时,在demo目录下生成一份文件,生成的文件命名在执行测试用例时指定

最后,结果显示一共有测试用例1条,成功1条,说明实验结果符合设计预期。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/205086.html