学习目标:
1、常见的抓包方法
2、如何提取和使用token
3、用例规范
4、辅助函数
具体内容:
1、常见的抓包方法
做接口测试前,肯定需要使用抓包工具去请求接口,然后才开始正常写接口用例。
常用的2种抓包方法有:
1.1 windows上使用的接口工具:postman、fiddler、浏览器的network,工具的使用方法就不专门介绍了,这个网上很多
1.2linux上做请求操作:使用curl工具请求,curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具
1.2.1 curl工具的常用操作
查看帮助命令:curl –h
查看请求的详细内容:curl –v 请求内容
使用参数 -X 加请求方法类型:curl –X POST/GET
使用参数 -H 可以添加请求的头部,多个头部信息需要使用多个 –H
使用参数-F 可以添加表单数据,多个字段需使用多个-F
POST请求提交JSON文本格式数据
其他的post请求操作(注意data里面的双引号):
2、如何提取和使用token
引用参数变量的两种方法
1、从test的extract获取变量名称
2、从debugtalk里面获取对应的函数的返回值
3、用例规范
编写规范:
执行规范:
- 执行单个用例
- 执行多个用例
- 执行n个目录下的用例
4、辅助函数
5、hrun框架生成和使用
5.1自动生成hrun框架
安装对应的hrun版本:pip3 install httprunner==2.2.1
hrun --startproject 项目名称,可以在当前目录下生成hrun框架
一个HttpRunner项目中必须要有的文件:api(定义接口) reports(自动生成的,存储测试报告) testcases (存放测试用例) testsuites(存放测试套件) .env (存放环境配置参数) debugtalk (编写脚本函数)
5.2 hrun框架构成介绍
5.2.1api层:主要是单个接口的用例编写,包括name、request主体、validate验证
5.2.2testcase层:主要是把之前api层的用例组合成用例,包括:config(存放公共配置)和teststeps(api或者自定义的接口组成 的用例步骤)2层部分,里面调用api的路径都是从根目录后开始写的
备注:常用的断言方法
eq(=)、lt(<)、le(<=)、gt(>)、ge(>=)、ne(!=);
str_eq、len_eq、len_gt、len_ge、len_lt、len_le;
contains、contained_by、type_match、regex_match、startswith、endswith
5.2.3testsuites层:把之前的层是用例组合
5.2.4 .env文件是存放环境配置参数:里面使用=进行参数的赋值,其他的模块使用变量直接使用${ENV(变量名称)}就可以直接获取env文件里面的变量值了。
debugtalk.py文件:里面可以自定义一些辅助函数,其他模块可以直接调用
6、常见问题排查:
6.1 AttributeError: module 'yaml' has no attribute 'FullLoader'
解决方法
pip install --ignore-installed PyYAML
6.2运行用例报错:Testcases not found in xxx
解决方法:
卸载httprunner后升级到对应的版本
6.3httprunner.exceptions.ApiNotFound: api/login_submit.yml not found!
解决办法:
hrun的用例运行需要在根目录下执行,不如会找不动文件
6.4要注意yaml格式里面字典的分号的后面要有个空格,否则会报错
6.5禁用https协议的安全校验方法: