大家一般用什么工具测试HTTP和json接口?:SoupUI,这是我现在用的最多的接口测试工具。在我们日常的开发过程中,大多数是两种类型的接口:SOAP API和Res:-json,
SoupUI,这是我现在用的最多的接口测试工具。
在我们日常的开发过程中,大多数是两种类型的接口:SOAP API和Rest API两种,SoupUI对这两种接口都有很好的支持,而且还支持Amazon Web Service,这个只在软件的首页上看到过,没有实际使用过。
其实很多的接口测试工具对这两种常用的接口都有很好的支持,具体的使用方法我在这里也不详细讲了,都是图形界面的操作,按照指示一步一步的新建即可完成。
其中它可以很方便地进行压力测试,也是按照提示,一步一步新建,最后的的操作页面是这样的:
可以设置:并发数、策略,压力测试的时间等。
结果可以展示:接口的最大响应时间、最小响应时间、平均响应时间、TPS等等。
非常好用,大家可以尝试。
接口测试的工具很多,比如 postman、RESTClient、jmeter、loadrunner、SoapUI等,本人首推的测试工具是postman和jmeter,接下来就简单介绍下如何使用这两款工具进行接口测试,其他工具本次暂不介绍。
1. Postman是谷歌的一款接口测试插件,它使用简单,支持用例管理,支持get、post、文件上传、响应验证、变量管理、环境参数管理等功能,可以批量运行,并支持用例导出、导入。
2. jmeter是一款100%纯Java编写的免费开源的工具,它主要用来做性能测试,相比loadrunner来说,它内存占用小,免费开源,轻巧方便、无需安装,越来越被大众所喜爱。
最后我想给大家介绍一款做渗透测试使用的强大工具 burp suite,除了做接口测试外,还具备其他强大的功能,在此点到为止,有兴趣的朋友可自行研究学习。
希望以上能给你一些帮助!
3接口测试在整个测试流程中有着很重要的作用,一般在项目初期就开始,也可以用于回归测试。接口测试的性价比要比UI测试的性价比高很多。特别是现在一个服务端对应多个客户端的情况,web端、移动端、各种终端都离不开接口,所以接口数据的正确性关系到多有终端的正确性,接口测试意义重大,那么工作中都用哪些工具进行接口测试呢?
1.postman、Jmeter 目前比较火的就是这两款工具,简洁轻量,博得很多测试人员的喜爱。postman是谷歌的一个插件,非常便捷。Jmeter是基于Java语言开发的,可模拟性强。当我们用两款工具进行接口测试的时候,当真正的到企业级的时候,会发现软件有点力不从心了,有些地方需要自己写脚本了,工具自带的无法实现或者实现太死板了,这就是工具的局限性。所以,很多人开始写脚本进行接口自动化测试了,如下。
2.纯脚本实现,一般就是python语言或Java语言开发的,都需要借助第三方库,python借助requests库,而Java借助httpclient库。加上python的unttest测试框架,Java借助于testNG框架,很容易组织测试用例。测试用例一般都是放在excel或者配置文件中管理的。
至于接口测试的细节另外开篇讲述,这里不便全部讲述了,希望这些文字能对软件测试感兴趣的同学有所帮助。
如上就是我对接口测试工具的认识。喜欢软件测试的同学关注我哦,持续分享软件测试知识。4具体选择什么样的框架或者工具,取决于我们的测试复杂度,或者说取决于我们的测试需求(测试策略、深度、广度)。
常见的接口测试工具及测试自动化测试框架
我们先介绍下现在主流的接口测试工具和框架。
接口测试工具
Postman:接口功能
Jmeter:接口性能、功能
Loadrunner:接口性能、功能
SoapUI:接口功能、性能、安全
接口自动化测试框架
- 测试库构架框架
- 数据驱动的自动化测试框架
- 关键字驱动的自动化测试框架
如何选择
框架、工具的选择是我们确认开展自动化后首先面临的问题。之前网上有个梗,泡面煮着吃是没有灵魂的,当然这是一种调侃。自动化测试开展一定要结合被测系统的特点进行选择,不顾被测系统(系统框架)特性、场景而盲目选择自动化测试框架(或工具), 它是没有灵魂的,自动化失败概率会相对高很多。
如果我们的测试需求,只是进行接口的功能测试,需要使用一种方便的工具进行接口请求响应的验证。如上介绍的四种接口测试工具,都可以考虑,如果是功能性验证,推荐使用Postman、SoapUI,如果进行接口的性能测试,推荐使用Jmeter、Loadrunner。
如果我们的测试需求是希望对接口进行自动化测试,考虑到具体系统业务的复杂度,比如接口之间的依赖,业务场景的覆盖。单独就某一个接口进行测试,难以覆盖真实的测试场景,因此需要考虑结合接口自动化测试框架来满足我们的测试需求。
首先自动化测试框架更倾向于一种设计思想 ,这种思想指导工具的使用或者自研开发,并且不是只能使用仅仅一种框架,结合被测系统本身特性一般是选择多种测试框架的组合,来满足测试和设计需求(开发、维护角度)。
这里直奔主题,不错多余铺垫,推荐使用Robot framework关键字驱动的自动化测试框架进行接口自动化,通过自定义关键字的开发实现复杂的测试场景,需注意自定义关键字的易用性和可维护性。有兴趣的可以关注下Httprunner接口自动化测试框架的设计思想,很不错,指的学习和借鉴。
疑问:接口测试用例设计是只针对一个个单接口测试,还是流程场景测试?首先需要区分这里的流程场景指的是业务流程场景,还是操作流程场景。
业务流程场景
业务流程场景一般指的是系统业务流程,类似于办公流程,具有强流程性。
针对业务流程场景,接口的自动化用例是需要进行场景化设计的,一般常使用关键字驱动的测试框架+ python request模块。
借鉴关键字驱动测试思想,把接口请求发送、响应校验、响应内容返回(下一个接口依赖上一个接口,需返上一接口响应体),三部分封装成"请求校验"自定义关键字。
同时再封装"内容提取"自定义关键字——提取接口响应体特定数据。这样就可以获取上一个接口返回中的特定数据作为下一个接口的输入参数。
如此。任何业务场景都可以通过"请求校验"自定义关键字 + "内容提取"自定义关键字 + "响应校验"自定义关键字 +…
操作流程场景
操作流程场景一般指的是先使用哪个功能,再使用哪一个,没有强制性的操作步骤规范,比如单一的查询功能。
针对操作流程场景,则可以视情况,开展单一接口的自动化测试。现有的很多自动化框架、工具都适合此场景的自动化测试开发,在此不做扩展。
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/
5相关推荐阅读:可关注我,阅读《测试之术》专栏,其中对接口自动化测试设计、场景测试框架的介绍及Robot framework使用都有详细介绍,希望能够对你有所帮助。
作为一直在开发HTTP rest API接口的程序员丁哥来回答一下这个问题。
API测试的主要任务是看被开发的应用程序接口,是否符合期望,能否可靠的服务,能否提供API所预定的功能,然后就是测试性能如何,接口的安全性如何。
接下来我们就来看看,目前最流行的测试应用程序接口的工具有哪些。
...Soap UI
Soap UI的功能比较强大, 它可以测试REST API,SOAP API和网络服务。
该工具有免费版和付费版两种版本。
...Katalon Studio
Katalon Studio同时支持SOAP和REST API, 这其中包括各种操作如get,put,delete,post等等。当然也支持各种参数和数据负载。它的另一个特点是支持几乎所有现在流行的平台比如说windows系统,苹果系统, Linux系统。
该工具提供免费版本。
...Postman
最初这个工具是Chrome的一个插件, 到后来开发了新的版本, 可以支持Windows和苹果系统。
这个工具只支持Rest API测试。
该工具提供免费版本和付费版本。
...Tricentis Tosca
这个工具支持的协议比较多, 包括HTTP(S), JMS, AMQP, Rabbit MQ, TIBCO EMS, SOAP, REST, IBM MQ, NET TCP。
该工具提供付费版本。
...Apigee
这个工具的特点是支持云端API测试,能够分析和测试程序接口的性能,能够支持像Swagger这样的API编辑器。
该工具提供免费试用版和付费版。
...JMeter
这款工具是一款开源的测试工具,可以支持应用程序接口测试和接口性能的测试。
该工具是开源的,是免费的。
...Rest-Assured
这是一款开源的测试工具。支持界面和rest API测试。
该工具是开源的,也是免费的。
...Assertible
这个工具专注于自动化测试和可靠性测试。可以跟github和slack集成。
该工具提供免费版和付费版。
...Karate DSL
这是一个比较新的测试工具。并且是开源的。不需要,具有开发员背景,也可以写出测试案例。
该工具提供开源版本,当然是免费的。
俗话说没有最好的工具, 只有更好的工具, 更合适你的工具。
希望您在下面能够分享你的想法,这里是丁哥开讲,欢迎关注留言点赞,谢谢。
6
做为一名开发者我用Postman。
在开发项目时前后端分离后,由于前后端在开发前已经定义好接口文档,在开发阶段都互不依赖,并行开发,最后联调,后端在开发时需要模拟前端请求用来调试接口,这时Postman就派上用场了。
模拟各种请求Postman可以模拟所有的http请求,比如模拟不同类型的header头信息,正文以form-data或raw或application/json等方式发送,响应结果也可以用不同的方式查看。
预处理脚本在接口请求前Postman可以调用一段js代码,比如你的接口需要验证token,可以把生成token的规则放到预处理脚本里,然后随接口一块儿发送。
接口分类管理Postman可以保存你所有的接口,并且是云同步的,你可以按目录分类存放,并通过模糊搜索,快速找到想要的接口,这样即便你拥有再多接口也不用担心找不到问题。
你可以按开发环境、测试环境、生产环境定义不同的环境变量,如分别在三个环境里定义了接口的域名,然后在接口url地方直接用环境变量代替域名,就可以通过切换环境的方式来调试不同环境的接口。
7本身接口测试工具有很多,比如回答中提到的postman、Jmeter、loadrunner、SoapUI这些工具,但是这些工具都比较重;对于新手来讲学习成本比较高,个人并不推荐!
那我推荐什么呢?给大家安利一款抓包工具,它也可以做接口测试-------fiddler有哪些优点
免费算不算,必须算
轻量
使用简单,学习成本低
等....
安利完了,肯定要分享一波使用教程
怎么用呢?
fiddler 它的核心功能是抓包,但是这里只介绍如何使用它来完成接口测试。
1.下载安装fiddler
下载地址:https://www.telerik.com/download/fiddler
2.打开fiddler
选中composer页签,然后就可以看到如上图的页面,根据你的接口情况填写内容,然后点击Execute按钮即可执行接口请求~
左侧列表显示接口返回情况
右侧记录请求日志
如何查看接口返回结果
先点击(双击)左侧接口请求记录
需要注意的些什么header头是需要手动指定的
比如:Content-Type,UA等
因为经常会遇到接口返回415的情况,这种情况都是header头的Content-Type不对导致的~
是不是很完美?欢迎大家给我留言,一起交流。。。8
Chrome下有个应用叫Postman。。一般用的这个。。
9目前有很多可以进行HTTP请求的测试工具,主流的有postman、swagger、restletClient、jmeter、SoupUI等。作为一名具备多年经历的高级研发,一直在使用restletClient和postman,主力为restletClient。
restletClient是由谷歌开发,提供桌面应用程序以及chrome插件。也正因此,笔者基本一直只使用该工具,而postman只做备胎。在chrome上安装插件,登录账号即可进行数据同步,随时随地使用,而且这个工具十分轻量化,不用安装桌面应用也可使用。
postman则是绝大多数开发者在用的一款,对http的请求头请求方式及body参数等设置也比较便捷,而且橘红和褐色的搭配也很时尚,让很多开发者成为其忠实用户。
但是postman的浏览器插件相对restletClient来说略微有点没那么好用,所以笔者一直使用的是restletClient。
其余的笔者使用较少,所以不在此赘述了,有喜欢讨论分享的朋友可以留言,一起分享共同进步!
10简单点的可以选择jmeter Postman等,如果想自己搭建一套接口测试框架可以用Python加requests加unittest来实现。关注我可以看到相关资料