欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

使用httprunner框架实现自动化测试—基础篇

程序员文章站 2024-01-26 20:38:04
Httprunner简介:...

写在前面:

  • 第一次接触的自动化测试就是使用httprunner框架实现的,刚开始接触时真的是无从下手,一些理论知识及常用概念是知道的,但是需要真正的项目实践来写出东西时是一脸懵逼,好在当时大佬们把前置的路都铺好了,只需要去模仿着填空就好,接触了一段时间也实现了一小模块业务。最近开始想要去写的人多了,想把我这段时间学习下来的一些微薄经验分享一下,也算是自己的一个学习总结吧!

正文:
一、Httprunner是什么?(httprunner简介:)
Httprunner是一款面向 HTTP(S) 协议的通用测试框架,只需编写维护一份 YAML/JSON 脚本,即可实现自动化测试、性能测试、线上监控、持续集成等多种测试需求。——取自于百度百科

 更多介绍可以查看中文使用介绍文档: https://v2.httprunner.org/
 安装大家可以根据文档中介绍的去敲个命令就好了,这边重点强调两个我踩过的坑:
 1.安装过程中报错,这个我当时实在搞不清楚为什么敲行一模一样的命令就会报错,反正到现在我也没太明白,只是听说是自己网络问题导致的,网络断开下重新连接后在敲一次就好了,我也是这样解决掉我的报错的。
 2.安装好后,在pycharm中运行脚本报错。具体报错我没有截图,说的大概意思就是找不到一个包,但那个包却是存在的,最后查资料换了版本号就好了,好像是最新的版本在一些环境中运行不稳定导致的,推荐大家使用我们常用的一个版本:2.5.6
 可以查下你的当前版本,如果不是建议换成稳定版本,尽量使用2.x.x的版本。
 (1)查看当前版本
 httprunner -V
 (2)变更版本为2.5.6
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple httprunner==2.5.6

二、Httprunner怎样实现自动化测试?

 案例:使用httprunner实现以下的测试用例

使用httprunner框架实现自动化测试—基础篇
第一步:项目准备

新建一个httprunner项目
   如下,在D盘新建了一个test的项目
备注:我们团队在做时,大佬有已经将整个项目的框架搭建起来了,所以我这边也直接拿来用了,该案例也就不再这个新的项目test上面执行了。我这边重点介绍下执行顺序和文件夹的存在作用。

使用httprunner框架实现自动化测试—基础篇
使用httprunner框架实现自动化测试—基础篇
补充:
使用httprunner框架实现自动化测试—基础篇
使用httprunner框架实现自动化测试—基础篇
第二步:分析用例,编写用例
该测试点由三个步骤组成,要执行此测试用例,必须保证每个步骤校验成功。

  • 步骤一,需要创建一个10元的优惠券:
    a:抓包,拿到创建优惠券的接口
    b:编写api,将创建优惠券的接口入参均写在api中
    api中的内容由三大部分组成:
    ##name:名字(非必须,建议有)
    ##variables:当前api中一些参数的取值(非必须)
    ##request:请求头中的必须信息(必须有)
    c: 编写testcases,将创建优惠券的api等信息引入
    testcases中的内容由两大部分组成config与teststeps:
    config:定义全局变量,作用于当前的整个测试用例
    teststeps:单个测试步骤,作用于当前单个测试步骤,每个测试步骤包含:
    ##name: 该步骤的名称
    ##api: 进行步骤要调用的api
    ##variables: 该api中的参数赋值
    ##validate: 响应值校验
    ##extract: 提取参数,用于给下一步骤使用

使用httprunner框架实现自动化测试—基础篇
使用httprunner框架实现自动化测试—基础篇
使用httprunner框架实现自动化测试—基础篇

  • 步骤二,领取优惠券(截图类似上面,不在重复):
    a:抓包,抓取领优惠券的接口
    b:编写api,将领取优惠券的接口入参均写在api中
    c: 在testcases中编写step2,将领取优惠券的api等信息引入
    备注:此处C不一样的一个点是,领取优惠券的入参券模版ID,需要从新建优惠券的返回参数中获取,此时在step1的新建优惠券步骤中用extract定义提取参数,在step2的领取优惠券步骤中给入参提取参数值,如下值。
    使用httprunner框架实现自动化测试—基础篇

  • 步骤三,进入买单页面(截图类似上面,不在重复):
    a:抓包,抓取进入买单页面的接口
    b:编写api,将进入买单页面的接口入参均写在api中
    c: 在testcases中编写step3,将进入买单页面的api等信息引入

  • 步骤四,更新买单页面,买单金额填10,使用优惠券全部抵扣(截图类似上面,不在重复):
    a:抓包,抓取更新买单页面的接口
    b:编写api,将更新买单页面的接口入参均写在api中
    c: 在testcases中编写step4,将更新买单页面的api等信息引入

  • 步骤五,提交买单订单,获取支付信息(截图类似上面,不在重复):
    a:抓包,抓取提交买单订单的接口
    b:编写api,将提交买单订单的接口入参均写在api中
    c: 在testcases中编写step5,将提交买单订单的api等信息引入

  • 步骤六,获取优惠券的详情信息,校验状态(截图类似上面,不在重复):
    a:抓包,抓取优惠券的详情接口
    b:编写api,将优惠券的详情接口入参均写在api中
    c: 在testcases中编写step6,将优惠券详情的api等信息引入

  • 步骤七,获取该笔订单的详情信息,校验重点字段(截图类似上面,不在重复):
    a:抓包,抓取获取买单订单详情的接口
    b:编写api,将获取买单订单详情的接口入参均写在api中
    c: 在testcases中编写step6,将获取买单订单详情的api等信息引入

  • 步骤八,删除优惠券,清除数据(截图类似上面,不在重复):
    a:抓包,抓取删除优惠券的接口
    b:编写api,将删除优惠券的接口入参均写在api中
    c: 在testcases中编写step6,将删除优惠券的api等信息引入
    使用httprunner框架实现自动化测试—基础篇
    使用httprunner框架实现自动化测试—基础篇
    第三步:汇总测试用例集
    在testsuits中新建一个用例集,在用例集中引入分为此类的testcases路径。
    使用httprunner框架实现自动化测试—基础篇
    第四步:执行测试用例集
    新建一个.py的run文件,指明要执行的用例集。
    使用httprunner框架实现自动化测试—基础篇
    第五步:执行用例,查看报告
    使用httprunner框架实现自动化测试—基础篇
    使用httprunner框架实现自动化测试—基础篇
    总结:
    1.httprunner难吗?不会python语言可以写吗?

  • httprunner想写起来很简单,如果有大佬铺路,直接按套路填空即可不需要python代码,但是想写好也不容易,比如登录方法、参数都写活(变量=多个复杂数值的计算公式推导而出)、公共部分的封装(创建、删除优惠券)等,这些都需要有python语言的功底,难于不难取决于你的追求目标。

    2.有什么坑可以避免?

  • (1)建议开始练习时参数可以写死,一旦会了,就尽可能的让参数都活起来,不然后面越来越多,改起来相当于需要重新来写一遍了,很耗费人力,想办法让你的用例不受任何限制条件的情况下都可以运行。
    (2)运行完自己重点case后在每一步新建数据的后面都要加上清除数据的步骤,不然多次运行结果造成的大量测试数据也是很可怕的,如果名称一致,后面手动删起来也不容易。
    (3)对响应值的校验需要特别重视,就如上面案例,如果只校验订单状态,不去校验应付金额、实付金额、优惠券状态具体值时,相当于这条用例是作废的,因为很多用例场景都会有这个已支付状态,并无法知道具体是怎样的过程到达的已支付状态。

本文地址:https://blog.csdn.net/yy456258/article/details/107446382