A06_HttpRunner关联_02_提取 SessionID_1:固定名称方式
接着上一章项目案例分析,SessionID 存在于临时 cookie 中,HttpRunner 可以从cookie中直接提取需要的值,而且要求 cookie 的键名称必须是固定不变的,提取方式为:
extract: - 变量名称: cookies.键名称
为了验证返回响应内容的正确性,需要在用例中进行断言处理。
- 本用例请求对象为登录页面,需要从响应结果中判断返回的是否我们要的登录页面。
- 在系统登录页面源代码中有用于提交用户名和密码的表单,表单起始标签里的 action 属性中有“index.asp”字样,仅出现于登录页面中,而且在整个页面源代码中只出现一次,我们就以它作为断言的判断依据。
正确返回的响应页面源代码中,表单起始标签为
以正则方式提取表单行中的“index.asp”关键字
- 使用正则表达式 (.*) 代替 index.asp 关键字
- 将代码中的双引号(")和问号(?)分别进行转义
- 将通过正则提取出来的内容保存到变量(form)中
extract: - form:
在测试用例中对提取的内容进行断言,判断是否提取成功
- eq:判断是否相等
- $form:从页面中提取的内容,相当于实际结果
- index.asp:我们预期的内容,相当于预期结果
validate: - eq: [$form, index.asp]
最终完整的测试用例如下:
- config: name: index- test: name: Get SessionID request: url: http://localhost/myweb/jxc/index.asp method: GET extract: # 从cookies中提取 sessionid 名称,此名称从抓包中获得 - sid: cookies.ASPSESSIONIDCCDBQQCA - form: validate: - eq: [status_code, 200] - eq: [$form, index.asp]
验证用例,有效:
命令: hrun --validate
执行用例,成功:
命令: hrun
查看报告:提取数据和验证都成功。