接口性能测试(接口性能测试报告)

来源网友投稿 1083 2023-02-13

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。
本篇文章给大家谈谈接口性能测试,以及接口性能测试报告对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 今天给各位分享接口性能测试的知识,其中也会对接口性能测试报告进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

接口测试主要测哪些方面

接口测试主要测以下5个方面:1. 功能测试;2.逻辑业务;3.异常测试;4.性能测试;5.安全性测试。接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。接下来着重介绍一下其中的几点——

1.功能测试

接口的功能是否正确实现了,接口是否按照设计文档中来实现(比如username参数写为了user,那么这就不符合,因为接口文档在整个开发中都需要使用,所以接口实际的设计要与接口设计文档中保持一致)

兼容性测试: 比如说今天接口进行了调整,但是前端没有进行变更,这时候需要验证新的接口是否满足旧的调用方式

2.逻辑业务

是否有依赖业务,比如查看订单,是需要用户首先登录的,所以肯定要保证登录了或有相应的cookie

业务逻辑测试: 传递正确的参数,接口对数据库进行查询的操作,需要去验证数据库查询是否正确,接口对数据库进行 增删改的操作,也需要看数据库是否同步进行了这些操作

使用Jmeter进行http接口性能测试

在进行网页或应用程序后台接口开发时,一般要及时测试开发的接口能否正确接收和返回数据,对于单次测试,Postman插件是个不错的Http请求模拟工具。

但是Postman只能模拟单客户端的单次请求,而对于模拟多用户并发等性能测试,就必须借助其他的工具了,这里推荐功能强大的JMeter自动化测试工具

Apache JMeter - Apache JMeter™

Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域。 它可以用于测试静态和动态资源例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库, FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。

下面就以上图的Restful类型的接口为例简单介绍使用Jmeter进行接口测试的方法。

获取某个具体网关设备的基本信息。

请求

方法:GET

URI:/api/gatewaygateway_id

参数:

在HTTP请求(http request)的头部(header)添加Userid和Token字段作为用户验证字段

响应

返回值:JSON格式的网关信息

参数:

.启动jmeter:在bin下以管理员身份运行jmeter.bat,启动jmeter

2. 创建测试计划:

默认启动jmeter时会加载一个测试技术模板,保存测试计划:修改名称为Apitest,点击保存,选择保存路径,后面的步骤,每次添加或修改了了一些选项,软件并不会自动保存到jmx文件中,所以进行测试后,如果需要保存本次测试选项,要手动到“文件”菜单中保存一下。

3. 添加线程组

右键左边树中的测试计划“Apitest”节点,“添 加”→”Threads”→”线程组”

添加成功后,“Apitest”节点下多了“线程组” 节点,当然这个线程组的名称是可以自己设定的。

4. 添加http默认请求:(用来配置公共参数,不是http请求)

右键线程组,选择“添加”→ “配置元件”→“HTTP请求默认值”,点击“HTTP请求默认值”后

添加成功后,线程组”节点下多了“HTTP请求默认值”节点

这里可以设置主机地址等一下公共参数,比如我们的例子中请求路径前面都是主机地址+index.php,就可以统一在"http请求默认值"里设置

填写默认请求名、服务器、默认请求路径,保存测试计划。

5.添加http请求信息头

这一项并不是必须的,只不过我们的例子中使用了Userid和Token放在HTTP请求头中用作用户验证

右键“Apitest”,选择“添加”→ “配置元件”→“HTTP信息头管理器”

6. 添加http请求

右键“Apitest”,选择“添加”→ “Sampler”→“HTTP请求”

添加成功后,出现新的节点“HTTP请求”,就可以填写具体的请求参数了。

填写完成,保存测试计划

7. 添加监听器:

右键线程组,选择“添加”→“监听器”→“XXXXXXXXX”

可以添加的监听器有很多种,可以添加多个监听器,这里我们添加几个常用的“图形结果”、“察看结果树”、“聚合报告”

添加成功后,“线程组”下增加了几个节点

8. 试运行

点击执行

可以查看各个“监听器”的结果

Label:每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性,这里显示的就是 Name 属性的值

#Samples:表示你这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里显示100

Average:平均响应时间——默认情况下是单个 Request 的平均响应时间,当使用了 Transaction Controller 时,也可以以Transaction 为单位显示平均响应时间

Median:中位数,也就是 50% 用户的响应时间

90% Line:90% 用户的响应时间

Note:关于 50% 和 90% 并发用户数的含义,请参考下文

http://www.cnblogs.com/jackei/archive/2006/11/11/557972.html

Min:最小响应时间

Max:最大响应时间

Error%:本次测试中出现错误的请求的数量/请求的总数

Throughput:吞吐量——默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transaction Controller 时,也可以表示类似 LoadRunner 的 Transaction per Second 数

KB/Sec:每秒从服务器端接收到的数据量,相当于LoadRunner中的Throughput/Sec

9. 修改线程组的线程数等参数,用于压力测试

点击左侧树形导航中的“线程组”

设置上面几个参数,模拟的总的请求数是:线程数*循环次数。执行一下,用“图形结果”监听器查看一下

样本数目:总共发送到服务器的请求数.

最新样本:代表时间的数字,是服务器响应最后一个请求的时间.

吞吐量:服务器每分钟处理的请求数.

平均值:总运行时间除以发送到服务器的请求数.

中间值:时间的数字,有一半的服务器响应时间低于该值而另一半高于该值.

偏离:服务器响应时间变化、离散程度测量值的大小,或者,换句话说,就是数据的分布.

接口测试怎么才能做好?

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



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. 异常验证(输入异常参数边界值)

JMeter 接口/并发/性能测试(详尽版)

Jmter工具设计之初是用于做性能测试的,它在实现对各种接口的调用方面已经做的比较成熟,因此,本次直接使用Jmeter工具来完成对Http接口的测试。因为再做接口测试时可以设置线程组,所以也可做接口性能测试。

        本篇使用JMeter完成了一个完整的Http接口性能测试流程,从脚本编写(工具化生成),执行到最终结果分析。

接口地址 :我们选取最常见的百度搜索接口:https://www.baidu.com/s?ie=utf-8wd=新闻

            ie:编码方式,默认为utf-8

            wd: 搜索词

返回结果判断 (断言):

            搜索结果,我们可以通过校验结果中是否含有搜索词wd来判断本次请求成功或失败。

依次进行如下操作:1) 添加线程组           2)添加请求http消息头管理器          3)添加结果监听器(察看结果树 )   

                                    4)添加用户自定义变量        *)添加定时器(集合点)

                                    5)添加请求的断言    6)添加断言结果    7)添加聚合报告    8)执行  

                                    9)结果分析(分析测试报告)

1) 添加线程组

        添加虚拟用户组(Thread Group),这些虚拟用户用来模拟访问被测系统

        一个 线程组(Thread Group) 等于 一组虚拟用户(virtual users group) ,

         一个Java线程  等于   一个用户
2)添加请求、添加 http消息头管理器

2.1)添加请求

        接下来的一步就是要加入实际被测页面,右击“线程组” “添加” “Sampler” “HTTP请求”。

        ps: 参数,用于get 或put请求;消息体数据用于post    请求; -----很重要,很容易出错接口性能测试

2.2)http消息头管理器

3)添加察看结果树

        添加结果监听器(察看结果树 ),  “监听器”让用户来观察测试结果

        运行后点击左侧观察结果数,查看请求执行结果,红色为失败,绿色为成功,如下图:

4)添加用户自定义变量  集合点

用户自定义变量 -,需要再HTTP请求处,手动修改请求中为变量形式 ${wd}
*)添加集合点
 5)添加请求的断言    6)添加断言结果    
7)添加聚合报告    
8)执行  

至此,就完成了一个完整Http接口的JMeter性能测试脚本编写,点击运行即可

查看运行日志,   “选项” “Log Viewer”看看运行的日志。如果你还是看不到日志,你可以点击下面所示的三角箭头展开或者收起日志视图

9)结果分析(分析测试报告)

待性能测试执行完成后,打开聚合报告可以看到: 
10) 脚本查看

        可以使用编辑器查看.jmx文件,如下图所示:

接口测试注意的点

接口测试作为集成测试的一部分,通过直接调用被测试的接口来确定系统在功能性、可靠性、安全性和性能方面是否能达到预期,有些情况是功能测试无法覆盖的,所以接口测试是非常必要的。

接口测试分为两种,一种是webservice接口,走soap协议通过http传输,请求报文和返回报文都是xml格式的,测试时通过工具soapUI进行测试。使用情况比较少接口性能测试;另一种http api接口,走http传输协议,通过路径来区分调用的方法,最常用的是get和post请求。

get请求和post请求的区别在哪里呢接口性能测试?网上的答案为:

1、get请求可以在浏览器中请求到,post请求的测试需要借助工具

2、get请求使用url和cookie传参,post的数据放在body中

3、post比get更安全,因为传递的参数在url上是看不到的

4、get请求的url会有限制,而post请求的数据可以非常大

5、一般get请求是来获取数据,post请求是传递数据的

其实,对于现在飞速发展的 互联网来说,上面的说法已经不严谨接口性能测试了。首先,post请求的参数也可以写在url里,但是这种情况不多见;其次表面上看起来,post利用body传参,比get的url传参安全,但其实只要用抓包工具(fiddler,Charles等),post的参数也是一览无余;再次,现在的浏览器非常强大,可以输入支持很长的URL,所以也不再有限制一说了。这么说来,种种区别只有最后一条是最根本的了。

 怎么来测试接口呢?根据什么来测呢?这就需要开发提供的接口文档了,接口文档和功能测试的需求说明书的功能是一样的。包括:接口说明、调用的url,请求方式(get or post),请求参数、参数类型、请求参数说明,返回结果说明。这里接口文档生成可以使用apipost接口文档生成工具。有了接口文档后,接口性能测试我们就可以设计用例了,一般接口测试的用例分为以下几种:

1、通过性验证,说白了就是传递正确的参数,是否返回正常的结果

2、参数组合,因为参数有必传和非必传,参数的类型和长度,以及传递时可能业务上的一些限制,所以在设计用例时,就要排列组合这些情况,保证所有情况都能覆盖到

3、接口的安全性,这个又分为几种情况:

1)绕过验证,比如提交订单时,在传递商品价格参数时,修改商品价格,就要看后端有没有验证了。或者接口性能测试我支付时,抓个包将订单金额一改,如果能以我改后的金额支付,那这个借口就有问题了。

2)绕过身份验证,就是某个功能只有有特殊权限的用户才能操作,那我传递一个普通的用户,是不是也能操作呢

3)参数是否加密,这个关系到一些账户的安全,比如我们在登录一些网站时,它要将我们的登录信息进行加密,如果不加密我们的信息就会暴露,危害性极大。

4) 密码安全规则,设置密码时复杂程度的校验。

4、根据业务逻辑来设计用例

用例设计完了,用什么来测试接口呢?我们可以借助一些工具,比如apipost和jmeter。apipost使用比较简单,可以在列表中选择请求方式,在输入框中输入URL,如果是get请求,直接点击发送就可以看返回结果了。

如果是post请求,会涉及到几种参数的上传方式和添加请求头、权限验证还有添加cookie等操作。apipost都可以简单实现

还有一种测试接口的工具是jmeter,用途比较广泛,不但能测接口的功能,还能对接口进行性能测试。比如:压力测试、负载测试等。在jmeter中需要创建线程组,如图:

Apipost官方链接: https://console.apipost.cn/register?utm_source=10008

接口测试有什么作用?

接口测试是测试系统组件间接口的一种测试。
主要用于检测外部系统与系统之间以及系统内部各个子系统之间的交互点。
重点测试数据的交换、传递和控制管理过程接口性能测试,以及系统间的相互逻辑依赖关系等等。

接口测试的主要作用是接口性能测试
(1)能够提早发现 bug接口性能测试,符合质量来控制前移的理念。
(2)接口测自试低百成本高效益,因为接口测试可以自动化并且是持续集成的。
(3)接口测试从用户度的角度对系统接口进问行全面检测。实际项目中,接口测试会覆盖一定程答度的业务逻辑 关于接口性能测试和接口性能测试报告的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 接口性能测试的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于接口性能测试报告、接口性能测试的信息别忘了在本站进行查找喔。
上一篇:HAproxy监测工具(HaTop)
下一篇:一段母线差压告警怎么处理(母线欠压故障是什么)
相关文章

 发表评论

评论列表