接口自动化测试框架---初学HttpRunner(三)

2020-06-19 10:28:54 浏览数 (1)

漫长的加班终于结束了,终于有时间把以前落下的债好好补一补,加油!!!

本篇文章主要讲如何利用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中进行校验。如下图:

0 人点赞