当前位置: 首页 > 科技观察

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

时间:2023-03-16 23:58:49 科技观察

先说一个小故事:有一天,你的领导丢给你几十个接口,然后让你输出一份报告。你:“exm?”,改变它。于是你引入了unittest单元测试框架,HTMLTestRunner等等。我正打算重新整理每个测试用例的分类,你们的领导又来了。如果世界上真有真爱,那就是你对你的爱。“我又向开发者要了100个接口来测试,你满意吗?”“把你的脚本给我看看,这是什么意思?它能在我这边运行吗?”“你的剧本怎么这么多,这么乱。”“我要对这个接口做一个性能测试,还有这个,这个……”“这些接口是串联的,你来处理吧。”你都快崩溃了,为什么,为什么不能简单点。……还好你没有放弃。机缘巧合之下,你发现了一个名为httprunner的测试框架。本框架使用yaml格式的文本描述脚本,一行命令即可进行接口测试。通宵研究了这个框架,你感叹:“原来接口测试可以写的这么优雅!”于是你把上百个接口扔到一个yaml文本里,执行了如下命令:hrunapi.yaml刷刷刷刷,搞定了,所有人都惊讶的看着你,好像在看一头帅气的猪,“这次怎么这么快?光调试一般需要一两天时间。“检测报告不错!”“数据也经过修正测试。”“嘿嘿,这个脚本简单,我看得懂,还行,很强大!”……那么,介绍一下我们今天的话题,httprunner怎么用?正文如下:说说我的经历,学习Httprunner有一段时间了,爬的坑一个接一个。今天就来做个总结吧~也希望其他小伙伴分享一下你进的坑。从一开始,我认为它只是一个框架。有什么问题?不就是方法调用吗!那么,我的天哪!怎么写呢?没有头绪,终于,哦~我好像知道怎么写了。我不知道你在学习一个新的框架。不就是这样吗。好了,话不多说,开始疯狂吐槽~1.注意代码格式!场景:我在写testcase的时候,可能下一层没有空格,然后一直报错,但是找不到。在哪里?所以要注意代码格式,层级关系空着4个字符。2.没有报错信息,慢慢开始吧!场景:一个很尴尬的案例,我把变量写成varibales,然后下一个案例我直接copy了。一直提示“找不到XXX”。当时我就想,会不会是我的方法不对呢?结果找了一个下午就这么低级的错误。看来只好把自己关在小黑屋里反省了。因为htr的yaml文件中没有报错信息,所以要确保每一个字都是正确的。3.不要把文件名弄错!相信很多小伙伴使用抓包工具下的文件,很多时候都会改成yml格式,所以运行的时候一定要注意。当你找不到文件时,你往往只是文件名错误。4.不知道在哪里调用方法!在写层级关系的时候,经常会用到debugtalk.py的方法。不过httprunner的错误提示不是很友好。往往找了很久才发现错误,然后去问领导。在每个方法中添加pdb.set_trace方法,每次调用这个方法,都可以通过键盘敲n来一步步调试。5、如何进行循环操作?当我想多次添加数据或多次删除数据时,不知道如何重复操作。查了很多资料,找到了给testsuites添加参数的方法,每个返回值都可以实现。还可以实现测试用例的执行和csv参数化。看了官方文档,说是数据驱动的思路。参数必须写在测试套件中。写在testcase里是没用的,不会生效。6、原来的拼接路径是这样的。在我的印象中,路径匹配应该是这样写的:$url+$parmas,但是如果你这样写,你的路径是这样的:'http://url+params',你的路径就是错的,怎么可能请求接口成功?所以正确性是这样的:最后,httprunner作为自动化测试框架还是很强大的,而且还支持Locust性能测试。还在不断的挖掘实践中。把我目前的经历坑,分享给大家。