热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

httprunner框架学习总结

目前在开发通用接口平台,已经完成参数引擎,内置函数引擎,执行引擎,API抽离等工作,突然发现了httprunner这个优秀的开源APItest框架,初步研究发现httprunner各方面都很优秀,

  目前在开发通用接口平台,已经完成参数引擎,内置函数引擎,执行引擎,API抽离等工作,突然发现了httprunner这个优秀的开源APItest框架,初步研究发现httprunner各方面都很优秀,遂进一步考虑是否将通用接口平台执行后台迁移至httprunner,经过多日的研究我发现了一个很不友好的地方。

  根据文章《HttpRunner 的测试用例分层机制》,文中介绍用例分层,API抽离其中有句话是这样说的:“API接口定义必须放置在 api 目录下”,这样的话如果我们web的数据存储在MySQL中的话,无法实现这一点,那么在调用API就会提示报错未知定义的API,如果数据存储在yaml文件中,并应用httprunner的脚手架机制生产相应的目录结构,那么这样的web化根本是无用的,只适合一个人自己玩,根本不具有web化的意义(共享即是正义)。

  基于这点,我放弃迁移web执行后台至httprunner的想法,继续自行开发批量执行及报告生成模块。

  下面也分享一下我学习httprunner的所得吧。

  1、安装

    windows安装方法,直接pip安装;也可以去github下载压缩包解压后源码安装,不多说了

  2、知识介绍

    在httprunner中,测试用例引擎最大的特色就是支持 YAML/JSON 格式的用例描述形式,也就是说你可以用编辑YAML的方式来编写接口自动化脚本,如下代码

文件名称:xxxx.yml

- config:
name: demo
variable_binds:
- UserName: test001
- Password: 123456
request:
base_url: http:
//xxx.debugtalk.com
headers:
Accept: application
/json
User
-Agent: iOS/10.3

- test:
name: regist user which passwd
is wrong
request:
url: http:
//m.aicai.com/m/saveSimpleRegister.do?agentId=14759&vt=5
method: POST
headers:
User
-Agent: 'iOS/10.3'
token: content.token
json:
account:
"postsay1"
password:
"%^&*()"
phone:
"13751077575"
isProtocol: on
ajaxReq:
1
validate:
- {"check": "status_code", "comparator": "eq", "expect": 200}
- {"check": "content.status", "comparator": "eq", "expect": error}
- {"check": "content.msg", "comparator": "str_eq", "expect": xlkhslhdfklsdlfh}
- eq: ["status_code" , 200]
- eq: ["content.status" , error]
- eq: ["content.msg" ,xhixvjkdjfljsdf]

  代码释义:config 为当前case的配置项标志,从代码中也可以看到,可以包括参数等信息;

       test为API标志,包含API信息以及断言信息 

       ps:不懂YAML的童鞋请自行学习其他资料

  执行时在yml文件夹所在目录的cmd中输入 httprunner xxxx.yml 即可。

可以看到执行结束,有报告生成,如下图

这样就完成了一个简单接口自动化脚本的编写和执行以及报告的生成,极大的简化了接口自动化的难度,你无需接触Python requests unittest 等代码,事实上httprunner的底层就是那些东西,用约定格式的YAML文件传入数据,httprunner在底层处理数据,发送请求,校验对比结果,生成报告,就酱子。

  其他呢,httprunner还提供了脚手架机制,一键生成httprunner的项目结构,提供抽离API机制 等等,到我发现无法web化后,遂放弃,因为老夫也会写网络爬虫哟,还是自己写后台吧。

  如果你想使用httprunner做接口自动化,建议去看说明文档,ok,就酱紫吧。

 


推荐阅读
  • 网络请求模块选择——axios框架的基本使用和封装
    本文介绍了选择网络请求模块axios的原因,以及axios框架的基本使用和封装方法。包括发送并发请求的演示,全局配置的设置,创建axios实例的方法,拦截器的使用,以及如何封装和请求响应劫持等内容。 ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
  • 本文介绍了如何使用PHP向系统日历中添加事件的方法,通过使用PHP技术可以实现自动添加事件的功能,从而实现全局通知系统和迅速记录工具的自动化。同时还提到了系统exchange自带的日历具有同步感的特点,以及使用web技术实现自动添加事件的优势。 ... [详细]
  • 使用nodejs爬取b站番剧数据,计算最佳追番推荐
    本文介绍了如何使用nodejs爬取b站番剧数据,并通过计算得出最佳追番推荐。通过调用相关接口获取番剧数据和评分数据,以及使用相应的算法进行计算。该方法可以帮助用户找到适合自己的番剧进行观看。 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • WebSocket与Socket.io的理解
    WebSocketprotocol是HTML5一种新的协议。它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送 ... [详细]
  • 深入理解Kafka服务端请求队列中请求的处理
    本文深入分析了Kafka服务端请求队列中请求的处理过程,详细介绍了请求的封装和放入请求队列的过程,以及处理请求的线程池的创建和容量设置。通过场景分析、图示说明和源码分析,帮助读者更好地理解Kafka服务端的工作原理。 ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • 本文介绍了将mysql从5.6.15升级到5.7.15的详细步骤,包括关闭访问、备份旧库、备份权限、配置文件备份、关闭旧数据库、安装二进制、替换配置文件以及启动新数据库等操作。 ... [详细]
author-avatar
M-G思维_891
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有