您当前的位置:首页 > 电脑百科 > 程序开发 > 框架

如何优雅地使用httprunner测试框架进行接口测试?收藏

时间:2020-11-04 09:10:11  来源:  作者:

先来个小故事:

一天,你的领导丢给你几十个接口,然后希望你输出报告。你:"exm?",改改改。于是你引入了unittest单元测试框架htmlTestRunner等等。

正打算将各个测试用例分类重新规整,你领导又来了。如果世界上有真爱这种东西存在的话,那你领导对你的爱便是了。

"我又从开发那里帮你要了100个接口过来测,开不开心?"

"你的脚本给我看下,这个是啥意思?可以在我那边运行吗?"

"你的脚本怎么这么多啊,好乱啊"

"这个接口我要做性能测试,还有这个、这个……"

"这几个接口是串联起来的,你处理下"

你几近崩溃,为什么,为什么不能简单点。

……

幸好,你并没有放弃,你在某个机缘巧合下发现了一个叫httprunner的测试框架,这个框架使用的是yaml格式的文本来描述脚本,只需一行命令即可进行接口测试。在连夜研究完这个框架后,你发出慨然长叹:"原来接口测试可以这么优雅地写啊!"

于是你将几百个接口丢进一个yaml文本里,执行了下面这条命令:

hrun api.yaml

刷刷刷,搞定,大家都吃惊地看着你,似乎在看一头变帅的猪

"这次咋这么快?平时光调试都得一两天。"

"测试报告不错!"

"数据也都校验了。"

"咦,这脚本简单,我都看得懂,可以可以,很强势!"

so,引入我们今天的主题,如何使用httprunner的呢?

如何优雅地使用httprunner测试框架进行接口测试?收藏

 

这里是正文喽:

说说我的经历吧,我学习Httprunner也有一段时间了,爬的坑一个接着一个,今天来做个总结吧~ 也希望有其他的小伙伴把你入的坑一起分享下。

从一开始以为不就一个框架嘛,有什么难的,不就方法调用么!再然后,天哪!怎么写?没有思路,最后,哦~好像知道怎么写了,不知道你们在学一个新框架的时候是不是这样的。

好了,话不多说,开始疯狂地吐槽吧~

一、代码格式要注意!

场景:我在编写testcase的时候,可能下一级没有空四格,然后就一直报错,但是也找不到在哪里?

所以,注意代码格式,层级关系空4个字符

如何优雅地使用httprunner测试框架进行接口测试?收藏

 

二、没有错误提示,下手慢点!

场景:一个很尴尬的案例,我把variables写成了varibales,然后我下一个case还是直接复制,运行时一直提示'XXX is not found',当时就想,难道是我方法写错啦?结果,找了一下午这么低级的错误。看来要把自己关小黑屋好好反思了。因为htr的yaml文件没有错误提示,所以要确保每个单词都是对的。

如何优雅地使用httprunner测试框架进行接口测试?收藏

 

三、文件名别搞错啦!

相信有很多小伙伴是通过抓包工具下的文件,很多时候会改成yml的格式,所以在运行的时候,千万注意了,找不到文件的时候往往就是文件名出错了。

四、调用方法不知道哪里了!

在写层级关系的时候,经常会用到debugtalk.py的方法,然而httprunner的错误提示不是很友好,往往找一个错误要找好久,然后问了领导,可以在每一个方法面加上pdb.set_trace方法,每次调用这个方法的时候,键盘输入n,就可以一步步调试了。

如何优雅地使用httprunner测试框架进行接口测试?收藏

 

五、循环操作怎么搞?

当我要多次添加数据或者多次删除数据的时候,不知道怎么重复操作,找了很多资料后发现了一个方法可以在testsuites添加parameters,每一个返回值就可以实现一次testcase的执行,并且csv参数化也能实现。看了官方文档说是数据驱动的思想还有,parameters一定要写在testsuites中,写在testcases是没有用的,不会生效。

如何优雅地使用httprunner测试框架进行接口测试?收藏

 


如何优雅地使用httprunner测试框架进行接口测试?收藏

 


如何优雅地使用httprunner测试框架进行接口测试?收藏

 

六、原来拼接路径是这样的

在我印象中路径的匹配应该是这样写的:$url+$parmas,但是这样写的话你的路径就是这样的:'http://url+params',你的路径就是不对的,怎么能请求接口成功呢?

所以正确是这样的:

如何优雅地使用httprunner测试框架进行接口测试?收藏

 

最后,httprunner作为一个自动化测试框架还是很强大的,还支持Locust性能测试,还在不断地采坑实践中,分享下我目前的坑,给大家排个雷。



Tags:httprunner   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
先来个小故事:一天,你的领导丢给你几十个接口,然后希望你输出报告。你:"exm?",改改改。于是你引入了unittest单元测试框架、HTMLTestRunner等等。正打算将各个测试用例分类重新规...【详细内容】
2020-11-04  Tags: httprunner  点击:(113)  评论:(0)  加入收藏
作者:星安果来源:AirPython 1. 前言原始测试金子塔包含 3 层,分别是:UI 自动化测试、接口服务测试、单元测试 其中,单元测试是对软件的最小可测试单元进行检查和验证,也是产生效...【详细内容】
2020-09-17  Tags: httprunner  点击:(475)  评论:(0)  加入收藏
▌简易百科推荐
近日只是为了想尽办法为 Flask 实现 Swagger UI 文档功能,基本上要让 Flask 配合 Flasgger, 所以写了篇 Flask 应用集成 Swagger UI 。然而不断的 Google 过程中偶然间发现了...【详细内容】
2021-12-23  Python阿杰    Tags:FastAPI   点击:(6)  评论:(0)  加入收藏
文章目录1、Quartz1.1 引入依赖<dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.3.2</version></dependency>...【详细内容】
2021-12-22  java老人头    Tags:框架   点击:(11)  评论:(0)  加入收藏
今天来梳理下 Spring 的整体脉络啦,为后面的文章做个铺垫~后面几篇文章应该会讲讲这些内容啦 Spring AOP 插件 (了好久都忘了 ) 分享下 4ye 在项目中利用 AOP + MybatisPlus 对...【详细内容】
2021-12-07  Java4ye    Tags:Spring   点击:(14)  评论:(0)  加入收藏
&emsp;前面通过入门案例介绍,我们发现在SpringSecurity中如果我们没有使用自定义的登录界面,那么SpringSecurity会给我们提供一个系统登录界面。但真实项目中我们一般都会使用...【详细内容】
2021-12-06  波哥带你学Java    Tags:SpringSecurity   点击:(18)  评论:(0)  加入收藏
React 简介 React 基本使用<div id="test"></div><script type="text/javascript" src="../js/react.development.js"></script><script type="text/javascript" src="../js...【详细内容】
2021-11-30  清闲的帆船先生    Tags:框架   点击:(19)  评论:(0)  加入收藏
流水线(Pipeline)是把一个重复的过程分解为若干个子过程,使每个子过程与其他子过程并行进行的技术。本文主要介绍了诞生于云原生时代的流水线框架 Argo。 什么是流水线?在计算机...【详细内容】
2021-11-30  叼着猫的鱼    Tags:框架   点击:(21)  评论:(0)  加入收藏
TKinterThinter 是标准的python包,你可以在linx,macos,windows上使用它,你不需要安装它,因为它是python自带的扩展包。 它采用TCL的控制接口,你可以非常方便地写出图形界面,如...【详细内容】
2021-11-30    梦回故里归来  Tags:框架   点击:(26)  评论:(0)  加入收藏
前言项目中的配置文件会有密码的存在,例如数据库的密码、邮箱的密码、FTP的密码等。配置的密码以明文的方式暴露,并不是一种安全的方式,特别是大型项目的生产环境中,因为配置文...【详细内容】
2021-11-17  充满元气的java爱好者  博客园  Tags:SpringBoot   点击:(25)  评论:(0)  加入收藏
一、搭建环境1、创建数据库表和表结构create table account(id INT identity(1,1) primary key,name varchar(20),[money] DECIMAL2、创建maven的工程SSM,在pom.xml文件引入...【详细内容】
2021-11-11  AT小白在线中  搜狐号  Tags:开发框架   点击:(29)  评论:(0)  加入收藏
SpringBoot开发的物联网通信平台系统项目功能模块 功能 说明 MQTT 1.SSL支持 2.集群化部署时暂不支持retain&will类型消 UDP ...【详细内容】
2021-11-05  小程序建站    Tags:SpringBoot   点击:(55)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条