漫长的加班终于结束了,终于有时间把以前落下的债好好补一补,加油!!!
本篇文章主要讲如何利用httprunner自己编写一个自动化脚本,一起往下看吧!
一、首先了解项目各模块之间构成。
主要讲以下三者之间的关系
1、api:用来对接口定义进行描述(相当于单接口测试)
2、testcases:编写的测试用例场景可以通过引用api的接口描述 (相当于单元测试)
3、testsuites:测试用例集,当测试用例较多的时候,就可以使用testsuits来进行组织管理(相当于集成测试)
二、项目实战
我这里找到了一个可以用做接口测试的网址,如下:
http://doc.nnzhp.cn/index.php?s=/6&page_id=12
这里就是一个简单的demo,后期慢慢写复杂的。
说下我的思路:编写user_create.yaml和user_login.yaml接口文档,然后通过testcases创建user_create_login.yaml 实现用户先注册后登录的一个流程
ps:注意这里的文件格式是yaml,和自动生成的格式不一样哦!
1)第一步,编写接口api描述
代码语言:javascript复制name: user_create #api 功能描述 -注册
request:
url: user/user_reg #请求路径 注册用户
method: POST #请求方式 建议大写哦!
data: #这里标注下 我尝试了params没有作用 注意咯
username: $username #接口参数 通过testcase中的variables进行传值
pwd: $pwd #接口参数
cpwd: $pwd #接口参数
verify: False #用于忽略认证校验
validate: #断言结果 用于判断执行成功失败
- eq: ['status_code',200] #正常的状态码,常见200,500,400等
- eq: ['content.msg','注册成功!']
代码语言:javascript复制name: user_login #api 功能描述
request:
url: user/login #请求路径 登录系统
method: POST #请求方式
data:
username: $username #接口参数 通过testcase中的variables进行传值
passwd: $pwd #接口参数 通过testcase中的variables进行传值
validate:
- eq: ['status_code',200] #断言结果 用于判断执行成功失败
- eq: ['content.error_code',0] #断言结果 用于判断执行成功失败 断言返回消息中的内容
2)编写testcases中脚本,进行用户创建和登录操作(不知道为啥代码放上去颜色变了,神奇)
代码语言:javascript复制- config:
name: register and login
base_url: http://api.nnzhp.cn/api/ #设置基本url地址 会自动拼接api中的路径
variables: # 定义变量 可以作为api中的参数
username: 'xiaowenziaa' #注册接口只能输入英文名称,中文暂不支持
pwd: 'aA123456'
- test:
name: create user
api: api/user_create.yaml #api路径 #最终的路径会和base_url进行拼接
- test:
name: user_login
api: api/user_login.yaml #api路径
3)执行代码,查看测试报告
成功结果如下:
这里提醒一下,在testcases中也可以添加断言,若testcase中存在断言时,会先对api中的进行校验,再对testcase中进行校验。如下图: