c api测试工具(api接口测试软件)

网友投稿 437 2022-12-27


本篇文章给大家谈谈c api测试工具,以及api接口测试软件对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 今天给各位分享c api测试工具的知识,其中也会对api接口测试软件进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

针对c语言的程序,有什么好的测试工具

部分白盒测试工具介绍
Parasoft白盒测试工具集
Jtest Java 代码分析和动态类、组件测试
Jcontract Java 实时性能监控以及分析优化
C++ Test C,C++ 代码分析和动态测试
CodeWizard C,C++ 代码静态分析
Insure++ C,C++ 实时性能监控以及分析优化
其它公司
.test .Net 代码分析和动态测试
logiscope c/c++ Verlog公司c api测试工具的静态、动态分析工具
还有testbed、Cantata c/c++等
Rational工具集中c api测试工具的puricoverage和purify、quantify
Compuware白盒测试工具集
BoundsChecker C++,Delphi API和OLE错误检查、指针和泄露错误检查、内存错误检查
TrueTime C++,Java,Visual Basic 代码运行效率检查、组件性能的分析
FailSafe Visual Basic 自动错误处理和恢复系统
Jcheck M$ Visual J++ 图形化的纯种和事件分析工具
TrueCoverage C++,Java,Visual Basic 函数调用次数、所占比率统计以及稳定性跟踪
SmartCheck Visual Basic 函数调用次数、所占比率统计以及稳定性跟踪
CodeReview Visual Basic 自动源代码分析工具
Xunit白盒测试工具集
Aunit Ada http://www.libre.act-europe.fr
CppUnit C++ http://cppunit.sourceforge.net
ComUnit VB,COM http://comunit.sourceforge.net
Dunit Delphi http://dunit.sourceforge.net
DotUnit .Net http://dotunit.sourceforge.net
HttpUnit Web http://c2.com/cgi/wiki?HttpUnit
HtmlUnit Web http://htmlunit.sourceforge.net
Jtest Java http://www.junit.org
JsUnit(Hieatt) javascript 1.4以上 http://www.jsunit.net
PhpUnit Php http://phpunit.sourceforge.net
PerlUnit Perl http://perlunit.sourceforge.net
XmlUnit Xml http://xmlunit.sourceforge.net
DUnit .net
JUnit java

常见的接口测试工具有哪些?

接口一般来说有两种,一种是程序内部的接口,一种是系统对外的接口。
系统对外的接口:比如你要从别的网站或服务器上获取资源或信息,别人肯定不会把数据库共享给你,他只能给你提供一个他们写好的方法来获取数据,你引用他提供的接口就能使用他写好的方法,从而达到数据共享的目的,比如说咱们用的app、网址这些它在进行数据处理的时候都是通过接口来进行调用的。
程序内部的接口:方法与方法之间,模块与模块之间的交互,程序内部抛出的接口,比如bbs系统,有登录模块、发帖模块等等,那你要发帖就必须先登录,要发帖就得登录,那么这两个模块就得有交互,它就会抛出一个接口,供内部系统进行调用。
一、常见接口:
1、webService接口:是走soap协议通过http传输,请求报文和返回报文都是xml格式的,我们在测试的时候都用通过工具才能进行调用,测试。可以使用的工具有SoapUI、jmeter、loadrunner等;
2、http api接口:是走http协议,通过路径来区分调用的方法,请求报文都是key-value形式的,返回报文一般都是json串,有get和post等方法,这也是最常用的两种请求方式。可以使用的工具有postman、RESTClient、jmeter、loadrunner等;
二、前端和后端:
在说接口测试之前,我们先来搞清楚这两个概念,前端和后端。
前端是什么呢,对于web端来说,咱们使用的网页,打开的网站,这都是前端,这些都是html、css写的;对于app端来说呢,它就是咱们用的app,android或者object-C(开发ios上的app)开发的,它的作用就是显示页面,让我们看到漂亮的页面,以及做一些简单的校验,比如说非空校验,咱们在页面上操作的时候,这些业务逻辑、功能,比如说你购物,发微博这些功能是由后端来实现的,后端去控制你购物的时候扣你的余额,发微博发到哪个账号下面,那前端和后端是怎么交互的呢,就是通过接口。
前面说的你可能不好理解,你只需记住:前端负责貌美如花,后端负责挣钱养家。
三、什么是接口测试:
接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
OK,上面是百度百科上说的,下面才是我说的
其实我觉得接口测试很简单,比一般的功能测试还简单(这话我先这样说,以后可能会删O(∩_∩)O哈!),现在找工作好多公司都要求有接口测试经验,也有好多人问我(也就两三个人)什么是接口测试,本着不懂也要装懂的态度,我会说:所谓接口测试就是通过测试不同情况下的入参与之相应的出参信息来判断接口是否符合或满足相应的功能性、安全性要求。
我为啥说接口测试比功能测试简单呢,因为功能测试是从页面输入值,然后通过点击按钮或链接等传值给后端,而且功能测试还要测UI、前端交互等功能,但接口测试没有页面,它是通过接口规范文档上的调用地址、请求参数,拼接报文,然后发送请求,检查返回结果,所以它只需测入参和出参就行了,相对来说简单了不少。

基于c/c++的自动化测试工具有哪些

全名HP QuickTest Professional software ,最新的版本为HP QuickTest Professional 11.0 QTP是quicktest Professional的简称,是一种自动测试工具。使用QTP的目的是想用它来执行重复的手动测试,主要是用于回归测试和测试同一软件的新版本。因此你在测试前要考虑好如何对应用程序进行测试,例如要测试那些功能、操作步骤、输入数据和期望的输出数据等 QuickTest针对的是GUI应用程序,包括传统的Windows应用程序,以及现在越来越流行的Web应用。它可以覆盖绝大多数的软件开发技术,简单高效,并具备测试用例可重用的特点。其中包括:创建测试、插入检查点、检验数据、增强测试、运行测试、分析结果和维护测试等方面。 2、WinRunner
Mercury Interactive公司的WinRunner是一种企业级的功能测试工具,用于检测应用程序是否能够达到预期的功能及正常运行。通过自动录制、检测和回放用户的应用操作,WinRunner能够有效地帮助测试人员对复杂的企业级应用的不同发布版进行测试,提高测试人员的工作效率和质量,确保跨平台的、复杂的企业级应用无故障发布及长期稳定运行。 企业级应用可能包括Web应用系统,ERP系统,CRM系统等等。这些系统在发布之前,升级之后都要经过测试,确保所有功能都能正常运行,没有任何错误。如何有效地测试不断升级更新且不同环境的应用系统,是每个公司都会面临的问题。 3、Rational Robot 是业界最顶尖的功能测试工具,它甚至可以在测试人员学习高级脚本技术之前帮助其进行成功的测试。它集成在测试人员的桌面IBM Rational Test Manager上,在这里测试人员可以计划、组织、执行、管理和报告所有测试活动,包括手动测试报告。这种测试和管理的双重功能是自动化测试的理想开始。 4、AdventNet QEngine
AdventNet QEngine是一个应用广泛且独立于平台的自动化软件测试工具,可用于Web功能测试、web性能测试、Java应用功能测试、Java API测试、SOAP测试、回归测试和Java应用性能测试。支持对于使用HTML、JSP、ASP、.NET、PHP、JavaScript/VBScript、XML、SOAP、WSDL、e-commerce、传统客户端/服务器等开发的应用程序进行测试。此工具以Java开发,因此便于移植和提供多平台支持。

接口测试怎么才能做好?

这个问题还是从需求、测试用例设计、执行来说吧。



A.需求

首先要了解这个接口提供的服务的需求定义,那么我们就知道大概测试的结果是啥。同时理论上要先提供接口规范,方便后续测试,以及给调用者联调的一个文档约定。


B.测试用例设计


根据测试的接口规范,基于业务进行场景设计,再结合边界值设计方法、等价类划分等常用设计方法进行用例设计。


1.设计的方向是常规的测试用例设计:协议规范测试、接口入参、接口出参。

协议规范测试:比如HTTP协议:URL地址、Header测试。不过一般情况下,默认调用者按照接口规范正常调用。这个不用过于详细测试。


2.接口入参:参数个数测试(注意是否必传字段),参数值测试(为空、正常值、非法值等,以及首尾有空格是否过滤)。


3.接口出参:至少涵盖一条成功的响应和一条失败的响应,当然我们测试出更多错误码,我们的覆盖率也就更全面。


4.业务场景用例: 这个需要你对于这个接口的业务的了解程度,而且这是最重要的部分。

比如中间使用了缓存服务(第一次缓存没有,是不是直接读数据源,并存入缓存;第二次直接读取缓存是否正确);

比如需要考虑请求外部的接口获取相应的信息的时间损耗(连接不上外部接口,外部接口下线了,外部接口响应太慢);



C.测试用例执行


1.需要你对接口协议有一定的了解,选择适当的开源工具(如postman)或者自己编写脚本进行模拟请求。

2.需要熟悉接口所使用的中间件等知识(比如redis、kafka、mysql数据库)。

3.需要模拟外部接口返回给你现在正在验证的程序的接口。(比如扣费业务,你不可能每测一个业务,就去调真实扣费)。



是web开发接口吗?建议使用Postman

一、什么是接口?

接口测试主要用于外部系统与系统之间以及内部各个子系统之间的交互点,定义特定的交互点,然后通过这些交互点来,通过一些特殊的规则也就是协议,来进行数据之间的交互。

二、 常用接口采用方式:

1、webService接口:是走soap协议通过http传输,请求报文和返回报文都是xml格式的,我们在测试的时候都用通过工具才能进行调用,测试。可以使用的工具有apipost、jmeter、loadrunner等;

2、http api接口:是走http协议,通过路径来区分调用的方法,请求报文都是key-value形式的,返回报文一般都是json串,有get和

post等方法,这也是最常用的两种请求方式。可以使用的工具有apipost、jmeter、loadrunner等;

三、前端和后端

前端:网站前端是对网页静态页面的设计,通俗的来说,就是我们肉眼能看的到的东西,当我们浏览网站的时候所看到的页面上的内容几乎都是属于前端,前端的工作就是网站页面,静态的页面是没有后端成分的,前端主要包括html和css外加js等一些样式和布局。

后端: 网站的后端就是动态网站的技术,比如网站上的一些注册登录和一些弹窗,这些都是后端的逻辑,常用的后端语言有php,jsp等,后端的数据库也包含myspl等,都是对后端进行存储数据。

四、 接口测试概念

接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等(通俗来说就是,检查业务逻辑是否满足业务需求,校验字段是否正常你实际结果是否满足预期)

五、 接口的组成:

a、接口说明

b、调用url

c、请求方法(getpostput等)

d、请求参数、参数类型、请求参数说明

e、返回参数说明

六、为什么要做接口测试,接口测试的目标

接口其实app和前端交互用的,所以好多人问,为啥做功能测试还要测接口,目标是啥不是多此一举吗?首先我告诉大家,这种想法是错误的

那么举一个例子:

例如一个登陆接口,例如产品上规定用户名6-10个字符数字下划线,但后端没做判断。但我们业务人员测试肯定验证,但只是前端做了校验,后端压根就忘了这个小需求.那么后果来了如果一个懂的直接抓包去篡改你的接口,然后绕过校验,通过sql注入直接随意登录。如果你这是一个下单业务,是不是给公司造成了很大损失

所以此时此刻接口测试目标来了:

1.可能发现客户端没有发现的bug(那么也叫隐藏bug)

2.及早爆出风险(保证质量正常上线)

3.接口稳定了,前端随便改

4.最重要检查系统安全性,稳定性

七、如何进行接口测试

1.使用接口测试工具进行测试,接口测试和接口文档生成工具apipost,接口测试和性能测试工具jmeter

2.接口状态码表示含义

例如:200(成功)/300(重定向别的地方)/400(请求语法错误)/500(服务器异常)

测试点:

B. 参数组合(传入不同值)

C. 接口安全(绕过验证/绕过身份验证/参数是否加密等)

D. 异常验证(输入异常参数边界值)

接口模拟测试利器,moco server工具的介绍

前后端经常会存在接口对接,为减少相互间的强依赖,双方能并行开发。接口的模拟测试就显得尤为关键。一些对外的接口,外部环境往往不可控,在开发、测试阶段为了减少其影响,通过接口模拟测试能减少很多不必要的麻烦。

本文将介绍一款轻量级的java mock server工具,解决以上的常见问题。

moco是一个java实现,轻量级的,开源的接口模拟测试工具,可以通过jar独立部署。简单json配置,即可实现接口的请求响应接口模拟。

官方地址:

下载官方Standalone Moco Runner文件到本地。

下载完成对应目录下可以moco-runner-0.12.0-standalone.jar文件

对应目录下新增foo.json文件以下内容。

以上定义了全局接口的返回信息。

以下命令运行moco server

访问http://localhost:12306 ,将看到"Hello, Moco"返回信息。

以上就完成了moco server的接口完整测试。是不是很easy。接下来我们再看看,比较常用的http restful的配置方式。

一个项目往往有很多接口,moco的include属性支持多个配置文件的引用,通过不同文件的配置实现接口的分组定义,更便于接口管理维护。

首先定义一个全局配置文件globalconfig.json(名称可以任意取)

上面使用include属性,引入相关子文件定义。

注意:若使用include的文件定义,在启动moco server的时候,配置文件前的启动参数是 -g ,而不是一开始介绍的 -c 参数,否则启动将包include字段识别错误。

openApi.json文件内容如下

上面定义了接口测试1、接口测试2两个接口。每个接口可以配置他的request和response信息。在接口测试时,必须request选项满足时,对应response才返回。

更多属性配置可参见官方文档。

另外moco server对配置文件的变更是实时检测的,以下控制界面可见openApi.json发生的change变更。这在测试联调时特别方便,一种返回case测试完后想改返回值,只需变更响应配置文件,无需来回重启moco server。

通过使用moco server,是否感觉特别得简单、实用、高效?喜欢的coder们赶快使用起来吧!提高效率,珍惜生命!

如何对API进行负载测试与调优(一)

本文由Donny译自 3scale.com 的 《How to load test tune performance on your API》
这几年API的作用不断演化,以前API还只是用来做内部系统之间的集成点,但现在API已成为一个公司的核心系统,一个构建于Web和移动端应用之上的核心系统。

当API仅只用来处理后台的任务(例如生成报告),那么性能差点也不是问题。但是如今API慢慢地发展成为连接服务与终端用户的核心纽带。这种关键性的角色变化表明了一个重要的观点:那就是API的性能真的很重要。

如果API数据源响应快,前端的应用程序的设计好点或差点影响不大,要是响应慢如蜗牛,前端的设计再出色也是然并卵。现在我们的客户端应用展示的数据源可能都是来自多个API响应内容的聚合,性能对这种微服务构架来说真的非常重要。

可以毫不夸张的说出色的性能就是你API提供的最好功能。我们知道向目标改进的唯一正确的方法就是找到问题的关键点,或者叫关键路径,并不断迭代测量和调整你的架构系统,直到系统达到预定的目标。对于API来说,测量和提高性能的过程就是负载与压力测试的过程。

本文将重点介绍如何对你的API进行负载压力测试。我们会以一个简单的、未测过的例子开始,然后再添加一个访问控制层,要确保一切都经过严格测试,做好处理真实流量的准备工作。OK,开始吧!
首先我们要明确要测试什么,可以是对你所有的API接口,或者是对单个API接口,或是对需要排除故障或改进的API接口的常规测试。
本文的其部分,我们将使用一个示例API。这是一个棋牌类游戏的Node.js API。它有三个API接口:
/question – 返回一个随机黑牌

/answer – 返回一个随机白牌
/pick – 返回一对随机的问题与答案

你测试用的负荷情况越和真实环境的越类似,你的负载测试就越有用。如果你不知道实际流量有多少或者你不知道负载在所有接口上是否都一致,那么就算你知道你的API可以保持400 请求/秒的吞吐量也没啥鸟用。

所以,你应该先从收集你API的使用数据开始。你可以直接从你的API服务日志或者从其他你在用的应用性能工具(例如New Relic)中获取数据。在对你的API进行第一次测试之前,你应该对以下问题做到心中有数:
(1)每秒请求数的平均吞吐量(Average throughput in requests per second)

(2)峰值吞吐量(您在某段时间内获得的最大流量是多少?)(Peak throughput)

(3)API各接口的吞吐量分布情况(有没有一些接口的流量远超其他接口?)

(4)用户的吞吐量分布情况(少数用户产生大多数的流量,或者是更均匀分布?)

另外还需要考虑的一个关键点是,在测试期间将要模拟的流量会是怎样的,主要考虑点是:

(1)重复负载生成(Repetitive load generation)

(2)模拟流量模式

(3)真实流量

通常我们最好以最简单的方法开始测试,然后逐步演化到更为接近真实环境的测试。我们可以先用重复负载生成来做为API接口的第一个测试,这样不仅可以验证我们的测试环境是否稳定,更重要的是可以让我们找到API能承受的最大吞吐量,这样我们就可以知道API可以达到的性能上限是多少。

找到你的API性能上限值后,你就可以开始考虑如何将你的生成的测试流量塑造得更接近真实环境。使用真实流量来测试是最理想的,但实际操作不太可行。要模拟真实流量比较难,也太花时间。所以我们有一个折中点的方法:先研究你的流量分析数据,并做一个简单的概率模拟。比如你有100个API接口(提示:原文endpoint在这里我译为接口,翻译成端点也可以,不过译成接口感觉更容易理解),你检查了上个月的使用情况,发现80%的流量来自20个接口,其中3个接口占用了50%的流量。那么你就可以创建一个遵循这种概率的请求列表,并提供给你的负载测试工具。这样做就相对快多了,并且它相对比较接近你真实负载,可以显示出你实际环境中可能遇到的问题。

最后,如果你拿到你要测试的API的真实访问日志,你就可以用它们来做最接近客观现实的测试。我们待会儿要讨论的大部分负载测试工具,都是接收一个请求列表作为输入文件。你可以用你的访问日志,稍微做一个格式调整就可以匹配每个测试工具所需的格式。搞定这个你就可以在测试环境中轻松重现你的生产流量。
好了,你清楚了你要测试什么鬼了,准备工作的最后一步就是配置好你的测试环境。你需要一个专用的测试环境。如果你不怕被你老板骂的话,或者比较任性,你也可以直接在你的生产环境中进行性能测试,不过出问题别说哥事先没跟你说清楚哈。

如果您已经设好一个预生产或沙箱环境,并且你的API也在上面运行了,那么你就万事俱备了。因为本文要用示例API,我们会在AWS的服务实例上设置我们的环境。

在我们的例子中,我们使用一个简单的API,不需要从磁盘读取或在内存中保存大型数据集。我们选择Linux C4.large 实例就够了。

注意:我们对比过其他相似处理资源数但内存更大的AWS实例,但实际测试中内存大部分没使用,所以我们选了C4.large

接下来,我们将一个配好的负载测试实例(服务器)运行起来,这只是一个运行模拟测试程序的服务器,它会通过从多个并发连接重复发送请求到我们的API服务器。你需要模拟的负载越高,机器的性能就要求越高。再次,这也是一个CPU密集型工作负载。这里我们选择具有4个虚拟核,16个 ECU的优化处理器的 c4.xlarge AWS服务器

我们选择在相同的可用区内部署所有实例(API服务器与测试服务器在同一个区/机房),这样可以将外部因素对我们测试结果的影响降到最小。
我们有一个沙箱环境来运行我们的API,同时也有另一台服务器准备开始负载测试。如果这是你第一次做性能测试,你一定会想知道什么是最好的方法。在本节中,我们将会分享我们如何选择工具,同时也会介绍一下目前市面上一些公认比较好的工具。

JMeter

在人们意识当中,首当翘楚的估计是 Apache JMeter ,这是一个开源的Java程序,他关键的特性就是提供一个强大而完善的创建测试计划的GUI。测试计划由测试组件组成,测试组件定义了测试的每一个部分,例如:

(1)用来注入负载测试的线程
(2)参数化测试中使用的HTTP请求

(3)可添加侦听器,象widget测试组件那样,可以以不同的方式显示测主式结果

优点:

(1)它是功能性负载测试的最好工具。你可以设定条件来为复杂的用户流建模,还可以创建断言来验证行为。

(2)轻松模拟复杂的http请求,比如请求前的登录验证或文件上传

(3)可扩展性强,有很多社区插件可以修改或扩展内置的行为

(4)开源并且免费

缺点:

(1)GUI学习曲线陡峭,一大堆的选项,在你运行第一个测试之前你得了解大量的概念。

(2)测试高负载时,操作步骤很麻烦。你需要先使用GUI工具来生成XML测试计划,然后在非GUI模式下导入测试计划运行测试,因为GUI会消耗掉本用于生成负载的大量资源。你还需要注意所有的侦听器(收集数据与展示测量的组件)哪些要被禁用或启用,因为它们也很耗资源。测试结束后后,你需要将原始结果数据导入GUI以才能查看结果。

(3)如果你的目标是测试一段时间内的持续吞吐量(例如在60秒内每秒请求1000次),那么很难找到正确的并发线程数量和计时器来求出一个比较稳定的数值。

JMeter只是我们在开始测试时用的工具,我们很快开始寻找其他替代方案。原因是,如果你的目标是在Web应用上压力测试复杂的用户流,那么JMeter可能是最好的工具,但如果你只是需要在一些HTTP API接口上进行性能测试,那用它就是杀鸡用牛刀了。
Wrk

Wrk 是一款和传统的 Apache Benchmark (最初用来做Apache服务器的测试工具)非常相似的工具。wrk和ab完全不同于JMeter:

(1)一切都是可以通过命令行工具配置和执行的。

(2)配置少但强大,只有基本生成HTTP负载的必要几项配置

(3)性能强悍
然而,和传统ab工具相比还是有几个优势的地方,主要是:

(1)多线程,所以能利用多核处理器的优势,更容易生成更高的负载

(2)利用Lua脚本很容易进行扩展默认的行为

不好的地方,主要是生成的默认报告在内容与格式上都受到限制(仅文本,无绘图)。当你的目标是找到你的API可以处理的最大负载量,那么wrk是你最佳选择工具。wrk用起来很快就可以上手。
Vegeta

Vegeta 是一款开源命令行工具,但它采用的方式不同于我们以前所见的工具。它专注于如何达到与维持每秒请求数速率。也就是说它侧重在测试支撑每秒X次请求时API会有怎样的服务行为,当你有实际的数据或对你将要达到的峰值流量有个估算时就非常有用,你可以用于验证你的API是否能满足你的需求。

SaaS 工具

正如你之前所看到的,运行一个简单的负载测试需要准备好配置环境。最近有些产品提供负载测试服务。我们试过两个, Loader.io 和 Blazemeter (话外:阿里也有性能测试工具 PTS ,老外估计没试过)。

注意:我们只试了这两个工具的免费版,所以得到的测试结果仅适用于免费版的限定。
Blazemeter

这个产品和我们前面提到的JMeter一样有同样的毛病:如果你只需要用在高负载测试,你需要在GUI界面上创建测试计划,然后在另一个运行非GUI模式的JMeter中导入这些计划。Blazemeter允许你上传JMeter的测试计划到他们的云端并运行,但可惜的是免费版只能设置50个并发用户。
Loader.io

它是一款 SendGrid 出品的简单而强大的云负载测试服务工具。它有你所需要的功能和漂亮的可视报告。 Loader.io 的免费版还是不错的,每秒最多可以有10000次请求的吞吐量,你基本上就可以用它来运行一个真实的负载测试。

我们推荐使用多个工具,以便可以多重检查我们的测试结果,不同的工具有不同的功能与方法,可以更多方面地反映测试结果。
我们先尝试找到我们的API可以承受的最大吞吐量。在这个吞吐量下,我们的API服务达到最大CPU利用率,同时不会返回任何错误或超时。这个吞吐量就可作为我们后面测试要用的每秒请求数。

同样,重要的是要注意到:CPU是限制因素之一,但你也还必须清楚地知道哪些资源会成为你API的性能瓶颈。
我们有必要在API服务器上安装一些工具,以便我们在测试过程中监控资源的利用率情况。我们使用  Keymetrics.io  和  PM2  模块。

我们的Node.js应用运行了一个非常简单的HTTP 服务。Node.js是单线程设计的,但为了利用c4.large AWS实例中提供的双核,我们使用PM2的集群功能来运行应用程序的两个工作进程。
由于我们的API是完全无状态的,所以很容易使用PM2的 核心集群模块(PM2在内部直接使用)。PM2提供的集群功能提供了不错的快捷命令来start/stop/reload应用程序,也可以监控进程。
我们先使用Loader.io对API进行测试。以下是持续30秒,每秒10,000次请求的测试结果,10000次请求是Loader.io免费版中允许的最大吞吐量。
在测试期间,我们观察到API服务器的CPU处理器在测试期间只有几次达到100%的容量。
这表示我们的API可能还可以处理更高的吞吐量。我们接下来通过运行wrk进行第二次测试证实了这一点。我们的目标就是要将我们的API服务器性能推到极限。
wrk -t 4 -c 1000 -d 60 --latency --timeout 3s http://api-server/questions

这里是我们对这个测试做了多次重复测试的结果:
Running 1m test @ http://api-server/question

4 threads and 1000 connections

Thread Stats Avg Stdev Max +/- Stdev

Latency 62.23ms 30.85ms 1.35s 99.39%

Req/Sec 4.07k 357.61 5.27k 94.29%

Latency Distribution

50% 60.04ms

75% 63.85ms

90% 64.17ms

99% 75.86ms

972482 requests in 1.00m, 189.89MB read

Requests/sec: 16206.04

Transfer/sec: 3.16MB

结果表明,我们的预感被证实:它达到16,206请求/秒,同时保持合理的延迟,第99百分位只有75.86毫秒。 我们将这作为我们的基准最大吞吐量,因为这一次我们看到了API服务器的最大容量处理能力:
我们刚看到用一个简单的方式来找出你的API可承受的最大流量负载,同时在这过程中我们介绍并讨论了我们看到的一些工具。

请继续关注本文的第二部分,我们将介绍如何控制流量,不要让随随便便一个客户端就可以轻松搞跨您的API。 我们将展示如何通过在架构前端添加代理来确保我们的API的性能不受影响。
本文译自: How to load test tune performance on your API 关于c api测试工具和api接口测试软件的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 c api测试工具的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于api接口测试软件、c api测试工具的信息别忘了在本站进行查找喔。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java使用Callable和Future创建线程操作示例
下一篇:页面接口测试工具(软件测试接口工具)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~