首页 生活常识 正文

jmeter图形结果峰谷(大家一般用什么工具测试HTTP和json接口)

常见的接口测试工具及测试自动化测试框架我们先介绍下现在主流的接口测试工具和框架。接口功能、性能、安全接口自动化测试框架测试库构架框架数据驱动的自动化测试框架关键字驱动的自动化测试框架如何选择框架、工具的选择是我们确认开展自动化后首先面临的问题。不顾被测系统(系统框架)特性、场景而盲目选择自动化测试框架(或工具),需要使用一种方便的工具...

大家一般用什么工具测试HTTP和json接口?

具体选择什么样的框架或者工具,取决于我们的测试复杂度,或者说取决于我们的测试需求(测试策略、深度、广度)。

常见的接口测试工具及测试自动化测试框架

我们先介绍下现在主流的接口测试工具和框架。

接口测试工具

Postman:接口功能

Jmeter:接口性能、功能

Loadrunner:接口性能、功能

SoapUI:接口功能、性能、安全

接口自动化测试框架

测试库构架框架数据驱动的自动化测试框架关键字驱动的自动化测试框架如何选择

框架、工具的选择是我们确认开展自动化后首先面临的问题。之前网上有个梗,泡面煮着吃是没有灵魂的,当然这是一种调侃。自动化测试开展一定要结合被测系统的特点进行选择,不顾被测系统(系统框架)特性、场景而盲目选择自动化测试框架(或工具), 它是没有灵魂的,自动化失败概率会相对高很多。

如果我们的测试需求,只是进行接口的功能测试,需要使用一种方便的工具进行接口请求响应的验证。如上介绍的四种接口测试工具,都可以考虑,如果是功能性验证,推荐使用Postman、SoapUI,如果进行接口的性能测试,推荐使用Jmeter、Loadrunner。

如果我们的测试需求是希望对接口进行自动化测试,考虑到具体系统业务的复杂度,比如接口之间的依赖,业务场景的覆盖。单独就某一个接口进行测试,难以覆盖真实的测试场景,因此需要考虑结合接口自动化测试框架来满足我们的测试需求。

首先自动化测试框架更倾向于一种设计思想 ,这种思想指导工具的使用或者自研开发,并且不是只能使用仅仅一种框架,结合被测系统本身特性一般是选择多种测试框架的组合,来满足测试和设计需求(开发、维护角度)。

这里直奔主题,不错多余铺垫,推荐使用Robot Framework关键字驱动的自动化测试框架进行接口自动化,通过自定义关键字的开发实现复杂的测试场景,需注意自定义关键字的易用性和可维护性。有兴趣的可以关注下Httprunner接口自动化测试框架的设计思想,很不错,指的学习和借鉴。

疑问:接口测试用例设计是只针对一个个单接口测试,还是流程场景测试?首先需要区分这里的流程场景指的是业务流程场景,还是操作流程场景。

业务流程场景

业务流程场景一般指的是系统业务流程,类似于办公流程,具有强流程性。

针对业务流程场景,接口的自动化用例是需要进行场景化设计的,一般常使用关键字驱动的测试框架+ python request模块。

借鉴关键字驱动测试思想,把接口请求发送、响应校验、响应内容返回(下一个接口依赖上一个接口,需返上一接口响应体),三部分封装成"请求校验"自定义关键字。

同时再封装"内容提取"自定义关键字——提取接口响应体特定数据。这样就可以获取上一个接口返回中的特定数据作为下一个接口的输入参数。

如此。任何业务场景都可以通过"请求校验"自定义关键字 + "内容提取"自定义关键字 + "响应校验"自定义关键字 +…

操作流程场景

操作流程场景一般指的是先使用哪个功能,再使用哪一个,没有强制性的操作步骤规范,比如单一的查询功能。

针对操作流程场景,则可以视情况,开展单一接口的自动化测试。现有的很多自动化框架、工具都适合此场景的自动化测试开发,在此不做扩展。

关于响应体为JSON的校验方式在测试工作中,一般都会接触到期望结果数据与实际结果数据一致性比对的测试场景,对于复杂、庞大数据的比对工作。如果依靠人工执行,其成本相当高,难以保障执行结果的一致性(多次执行可能存在偏差),并且重复性极高。因此,通常我们需要考虑如何通过自动化工具实现数据的比对。

JSON的两种数据结构

1.Key-Value对集合,在Python语言中可以理解为字典(Dict),如下图。

2.有序集合,在Python语言中可以理解为列表(List),如下图。

一致性校验核心设计

在测试工作中接触的Json数据校验,大多是请求响应体的校验,设计主要考虑了以下两点:

1.需支持复杂JSON比对,如查询地市编码基本信息接口的响应体中包含,省份编码、省份地市的基本信息(地市编码、地市名称、地市排序),例如 :

2.需支持比对结果的可追溯,比如地市数量(Count)不一致时,不能仅输出期望、实际结果的地市数量,还需要输出整个JSON的哪个节点的值不一致,或者缺失哪个节点,如Detail.Count的值不一致,例如:

[ERROR] ACTUAL-JSON ==> [Detail.Count]的VALUE不同: <actual>: 2 <expect>: 3

设计实现

一致性比对的整体设计包含三个模块:递归解析模块,格式转换模块,数据比对模块,具体描述如下。

具体Python实现可以阅读:《Python实现JSON数据的一致性校验》https://www.toutiao.com/i6662316383423955468/

相关推荐阅读:可关注我,阅读《测试之术》专栏,其中对接口自动化测试设计、场景测试框架的介绍及Robot Framework使用都有详细介绍,希望能够对你有所帮助。

jmeter

1、打开jmeter工具,打开脚本文件。

2、点击【选项】,勾选log Viewer

3、面板上会出现log的输出界面。

4、点击运行按钮,查看输出的日志。

5、只能看到一些常规的输出,没有其他的输出,这时候就需要调整日志的删除级别了。点击工具栏选项,找到Log Level,将日志级别调整为Debug。

6、再次点击运行,查看输出日志。

7、这时候日志输出就非常详细了。不仅有返回的信息,而且正则匹配的项也列出来了,响应断言也列出来了。

拓展资料:

Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、

FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。

Apache jmeter 可以用于对静态的和动态的资源(文件,Servlet,Perl脚本,java 对象,数据库和查询,FTP服务器等等)的性能进行测试。它可以用于对服务器、网络或对象模拟繁重的负载来测试它们的强度或分析不同压力类型下的整体性能。你可以使用它做性能的图形分析或在大并发负载测试你的服务器/脚本/对象。

软件测试自学学习路线图,求指教?

软件测试学习路线图,先给你一张全的,之后再分一点点给你说。

软件测试学习路线图(整体的)

软件测试视频第一阶段-前置基础知识1、学习目标:学完后目标:熟悉计算机及测试理论的相关概念,掌握HTML,CSS及JS基础语法及应用。

2、知识点:

1)计算机基础计算机组成部分、操作系统分类、B/S和C/S架构、常用DOS命令、服务器域名2)测试理论软件测试的目的、软件测试定义、软件测试原则、产品质量模型、测试基本流程3)HTML基础HTML基础语法、标签属性、图片标签、超链接、锚点、表单4)CSS基础CSS基础语法、CSS四类选择器、常用文字属性、行高属性、边框、盒子模型、内外边距5)JS基础

JS基础语法、JS引入方式

软件测试视频篇第二阶段-linux和数据库1、学习目标:学完后目标:掌握linux的常用操作命令及数据库的增删改查,熟悉数据库高级功能。熟悉非关系数据库redis。2、知识点:1)LINUX(熟悉)操作系统介绍、操作系统发展历史、CentOS图形界面、文件和目录、常用LINUX命令使用、vim文本编辑器的使用2)数据库介绍(熟悉)数据库基本概念、关系型数据库介绍、MySQL安装与使用、Navicat使用3)SQL语言(重点)数据表操作、数据操作-增删改查、条件查询、排序、聚合函数、分组、分页、连接查询、自关联、子查询、子查询演练4)数据库高级功能(了解)数据库设计、命令行操作数据库、函数、存储过程、视图、事务、索引、外键、用户密码软件测试视频篇第三阶段-测试基础1、学习目标:学完后目标:熟练掌握测试用例的设计方法及缺陷的编写方法,熟练掌握缺陷管理工具禅道或jira。2、知识点:1)软件测试理论2)软件生命周期3)测试方法和分类4)测试用例设计黑盒测试用例设计方法、白盒测试用例设计方法5)缺陷及缺陷管理工具缺陷属性、缺陷生命周期管理、禅道和jira6)测试其他

测试流程、测试计划编写、测试报告模版、测试报告分析

软件测试视频篇第四阶段-编程+数据结构1、周期与目标:学完后目标:能熟练掌握python编程基础语法,熟悉常用的数据结构,掌握常见的排序算法。2、知识点:1)PYTHON编程计算机组成原理、python开发环境、python变量、流程控制语句、高级变量类型、函数应用、文件操作、面向对象、异常处理、模块和包2)数据结构算法、时间复杂度和空间复杂度、python列表类型性能测试、列表字典内置操作的时间复杂度、顺序表、单向链表、双向链表、栈和队列、二叉树3)排序算法

冒泡排序、选择排序、插入排序、希尔排序、快速排序、归并排序

软件测试视频篇第五阶段——WEB自动化

1、学习目标:

学完后目标:熟练掌握selenium元素定位方法和常见元素操作,掌握HTML特殊元素的处理,js定位,unittest框架。2、知识点:1)WEB自动化入门自动化测试分类及自动化适用的项目、自动化测试框架选型、Selenium的发展历史及工作原理、SeleniumIDE插件使用、Firebug插件使用2)WEB自动化基础元素基础定位方法、Xpath,CSS元素定位方法、元素常见操作、浏览器的基本操作方法3)WEB自动化中级鼠标键盘操作、元素显示等待和隐式等待、HTML特殊元素处理、窗口截图4)WEB自动化高级

自动化测试模型、UnitTest框架、UnitTest断言、UnitTest与htmlreport的结合使用、UnitTest与DDT结合,实现数据驱动、UnitTest与logger结合使用

软件测试视频篇第六阶段——移动自动化

1、学习目标:

学完后目标:熟练掌握接口测试用例设计方法,掌握jmeter工具的使用,熟悉接口框架的设计和开发2、知识点:1)移动自动化基础移动端测试分类及特点、ADB命令及Monkey使用、appium环境搭建、appium工作原理2)移动自动化中级APP和手机系统操作、元素定位、元素操作、高级手势操作、混合APP测试、PyTest测试框架、定制测试报告、数据读写3)移动自动化高级

PO模式、数据驱动、关键字驱动

软件测试视频篇第七阶段——接口测试

1、学习目标:

学完后目标:掌握移动端产品测试的特点,熟练掌握adb及monkey的使用,熟练掌握元素定位和常见操作,掌握pytest框架及PO模式,数据驱动,jenkins持续集成,熟悉关键字驱动框架设计2、知识点:1)接口基础接口相关概念、接口测试实现流程、RESTful 架构风格、JSON基本语法、浏览器插件安装以及使用、postman及fiddler使用2)JMeter入门JMeter安装以及基本使用、JMeter组件之线程组3)JMeter组建参数化CSV Data Set Config、用户参数、用户定义的变量、函数4)JMeter常用组件直连数据库、关联、断言、集合点、函数详解、逻辑控制器、分布式、QPS、FTP、图形监控器5)接口框架自动化requests库使用及脚本封装、unittest框架、mock实现6)接口框架设计及实现框架设计、数据库操作、数据依赖解决、接口异常处理、统计报告及邮件发送、持续集成7)接口测试项目项目:接口清单提取、项目:功能测试、项目:性能测试、项目:自动化测试软件测试视频篇第八阶段——性能测试

1、学习目标:

学完后目标:掌握性能测试的概念,分类及测试流程,掌握loadrunner的使用,熟悉性能测试调优方法。2、知识点:1)性能测试基础性能测试理论、性能测试分类、性能测试常用指标、工具选择、LoadRunner安装与注册、性能测试步骤2)VuGen协议、参数化、集合点、事务、检查点、思考时间、关联3)Controller手动场景设计、场景运行、IP Wizard应用、负载生成器、服务水平协议(SLA)、场景监控、 服务器硬件监测工具4)Analysis执行结果分析、图表分析、吞吐量相关、事务相关5)性能测试调优性能测试方案、linux服务器性能监控、JVM配置调优、tomcat配置调优、性能测试报告6)数据库调优慢查询、线程池、索引命中率、行锁

PS:视频资源科后台回复“软件测试”获取。

jmeter上有设置超时时间吗?

可以设置,在http sampler 中点击高级选项,timeouts可以设置

每秒点击率在jmeter中指的是每秒请求数吗?

是的 每秒点击率 hps 这个概念不仅仅是针对某个工具说的 而是一个衡量负载大小的概念它就是指的单位时间获得返回的请求数量

本文转载自互联网,如有侵权,联系删除