httprunner学习01-创建httprunner工程,创建第一个API

前言:
随着公司产品功能越来越丰富,逐渐感觉在做功能测试和回归测试的时候,时间和精力捉襟见肘。想从繁复的手工测试中解脱一下,于是我开始进行自动化框架的调研,最终选择了简单易学的httprunner框架。

httprunner官方文档:https://cn.httprunner.org/

关于httprunner的使用,官方文档已经非常详尽,简单易学。建议学习使用httprunner的朋友们可以先把官方文档看一遍,再进行实际操作!一定要看一遍!

接下来,我将根据自己在实际项目中的实践,总结httprunner自动化工程创建和维护的经验。

1、httprunner环境搭建

HttpRunner 是一个基于 Python 开发的测试框架,可以运行在 macOS、Linux、Windows 系统平台上。
Python 版本:HttpRunner 支持 Python 3.4 及以上的所有版本。
操作系统: windows 7 (部分同事在win10集群上安装httprunner失败,但也有成功的)

安装httprunner

$ pip install httprunner

2、创建自动化工程

在合适的目录下,打开命令窗口,执行httprunner工程创建命令。
httprunner学习01-创建httprunner工程,创建第一个API_第1张图片
hrun --startproject CmpTest #创建自动化测试工程
httprunner学习01-创建httprunner工程,创建第一个API_第2张图片
目录结构的用处请阅读官方文档,描述的非常清楚。

3、使用fiddler等软件抓包

抓包后进行解压,根据解压出来的yml文件中的API调用信息,编写测试API。
提示:使用chrome或firefox浏览器network窗口的保存为har包功能,在单个功能编写时,也非常好用。
httprunner学习01-创建httprunner工程,创建第一个API_第3张图片
使用fiddler的好处是,在保存为har文件前,可对抓取的包进行初步的筛选,去掉不需要的api调用信息。
httprunner学习01-创建httprunner工程,创建第一个API_第4张图片
使用har2case -2y 命令去解压har包。
可以解压为yaml或json格式,个人偏向yaml,比较简洁明了。
httprunner学习01-创建httprunner工程,创建第一个API_第5张图片

4、编写第一个API

我使用的pycharm打开创建的httprunner工程,新建API文件,根据官网的示例,将yaml文件中的数据移植到API文件中。
API文件的结构元素:
httprunner学习01-创建httprunner工程,创建第一个API_第6张图片
示例:

name: 平台登录API
base_url: ${ENV(BASE_URL)}
variables:
      account: ${ENV(USERNAME)}
      password: ${ENV(PASSWORD)}
request:
    data:
      password: $password
      account: $account
    method: POST
    headers:
      BsmAjaxHeader: 'true'
      Content-Type: ${ENV(Content-Type)}
      User-Agent: ${ENV(User-Agent)}
    url: /api/managers/login
validate:
    -  eq: [status_code, 200]
    -  eq: [content.success, true]
    -  eq: [content.message, 管理员登录成功]

以上图为例,使用 ${ENV(参数名)},可用引用写在.env文件中的全局参数。使用$variables来引用普通传参。

API完成后,可使用hrun 命令执行进行执行,来测试API是否可用。
httprunner学习01-创建httprunner工程,创建第一个API_第7张图片
如果接口调用失败,控制台也会给出具体错误信息。也可以查看report文件,查看更详细的错误日志。
httprunner学习01-创建httprunner工程,创建第一个API_第8张图片

api编写经验总结:
1、name写清楚API接口的具体功能,增强接口可读性
2、在API内尽量提供参数实例,方便其他测试了解,也作为默认传参
3、requests中传参尽可能的进行参数化,不要写入固定数据,避免其他人调用失败
4、尽量不要在API文件里提取返回参数
5、相同url的API,尽量写成1个API文件,如果传参不同无法合入,可以写为两个api
6、API文件中的断言校验,不需要校验太多信息,具体的校验请在用例中执行
7、变量命名要规范

你可能感兴趣的:(学习笔记)