热门标签 | 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,就酱紫吧。

 


推荐阅读
  • 利用Selenium与ChromeDriver实现豆瓣网页全屏截图
    本文介绍了一种使用Selenium和ChromeDriver结合Python代码,轻松实现对豆瓣网站进行完整页面截图的方法。该方法不仅简单易行,而且解决了新版Selenium不再支持PhantomJS的问题。 ... [详细]
  • Python自动化测试入门:Selenium环境搭建
    本文详细介绍如何在Python环境中安装和配置Selenium,包括开发工具PyCharm的安装、Python环境的设置以及Selenium包的安装方法。此外,还提供了编写和运行第一个自动化测试脚本的步骤。 ... [详细]
  • 本文介绍了如何使用JavaScript的Fetch API与Express服务器进行交互,涵盖了GET、POST、PUT和DELETE请求的实现,并展示了如何处理JSON响应。 ... [详细]
  • 探索新一代API文档工具,告别Swagger的繁琐
    对于后端开发者而言,编写和维护API文档既繁琐又不可或缺。本文将介绍一款全新的API文档工具,帮助团队更高效地协作,简化API文档生成流程。 ... [详细]
  • 在尝试使用C# Windows Forms客户端通过SignalR连接到ASP.NET服务器时,遇到了内部服务器错误(500)。本文将详细探讨问题的原因及解决方案。 ... [详细]
  • 远程过程调用(RPC)是一种允许客户端通过网络请求服务器执行特定功能的技术。它简化了分布式系统的交互,使开发者可以像调用本地函数一样调用远程服务,并获得返回结果。本文将深入探讨RPC的工作原理、发展历程及其在现代技术中的应用。 ... [详细]
  • 主板IO用W83627THG,用VC如何取得CPU温度,系统温度,CPU风扇转速,VBat的电压. ... [详细]
  • 本文探讨了在构建应用程序时,如何对不同类型的数据进行结构化设计。主要分为三类:全局配置、用户个人设置和用户关系链。每种类型的数据都有其独特的用途和应用场景,合理规划这些数据结构有助于提升用户体验和系统的可维护性。 ... [详细]
  • 鼠标悬停出现提示信息怎么做
    概述–提示:指启示,提起注意或给予提醒和解释。在excel中会经常用到给某个格子增加提醒信息,比如金额提示输入数值或最大长度值等等。设置方式也有多种,简单的,仅为单元格插入批注就可 ... [详细]
  • 精致小屏灰色风格苹果CMS v10模板,支持DIY主题管理系统
    探索一款专为影视站设计的苹果CMS v10模板,具备强大的主题管理系统和500多个设置项,无需二次开发即可轻松配置。下载地址:https://www.mytheme.cn/maccms/244.html,演示地址:http://demo.mytheme.cn/index.php?id=244。 ... [详细]
  • 本文详细探讨了如何通过分析单个或多个线程在瓶颈情况下的表现,来了解处理器资源的消耗。无论是单进程还是多进程环境,监控关键指标如线程数量、占用时间及调度优先级等,有助于揭示潜在的性能问题。 ... [详细]
  • 气象对比分析
    本文探讨了不同地区和时间段的天气模式,通过详细的图表和数据分析,揭示了气候变化的趋势及其对环境和社会的影响。 ... [详细]
  • 本文探讨了为何相同的HTTP请求在两台不同操作系统(Windows与Ubuntu)的机器上会分别返回200 OK和429 Too Many Requests的状态码。我们将分析代码、环境差异及可能的影响因素。 ... [详细]
  • 本文详细介绍了如何在Kendo UI for jQuery的数据管理组件中,将行标题字段呈现为锚点(即可点击链接),帮助开发人员更高效地实现这一功能。通过具体的代码示例和解释,即使是新手也能轻松掌握。 ... [详细]
  • 深入理解ExtJS:从入门到精通
    本文详细介绍了ExtJS的功能及其在大型企业前端开发中的应用。通过实例和详细的文件结构解析,帮助初学者快速掌握ExtJS的核心概念,并提供实用技巧和最佳实践。 ... [详细]
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社区 版权所有