接口测试和性能测试的区别

前言

为什么进行性能测试 应用程序糟糕的性能表现,通常不能让企业达到预期的利益。

以最终用户的眼光看待性能 关注“应用程序”的性能,此处的“应用程序”指的是应用程序的所有部分(硬件、操作系统、系统架构、中间件、应用程序、网络等),而非指某一部分。

问题: 后端性能测试,一个功能其实都是由后台多个接口组成的 例如一个单据的保存,可能后台需要调用几个接口。用LR录制这个功能做性能测试。和把它这个功能调用的几个接口连接起来一起做接口性能测试有什么区别呢?

我们从入门者的角度来谈谈差别吧!

从三个部分去阐述两者的关联和区别:

1、测试与工具的关系

2、接口测试和性能测试的侧重点

3、在实际场景中二者的配置区别

一、测试与工具的关系

首先我们要正视一个理念,性能测试包含了工具(LoadRunner和Jmeter),工具仅仅是扮演了性能测试中的一个执行环节而已。

我们可以拿LoadRunner(Jmeter)做接口测试,当然也可以拿到做性能测试。所以工具是什么不重要,关键在于我们怎么去使用它。

例如下面一个生活中的例子: 铁锹。我们可以拿铁锹来铲土,也可以用铁锹来炒大锅饭,是不是就像LoadRunner既能做接口测试,又能做性能测试一样?

二、性能测试和接口测试的区别

测试分很多种,如果细细罗列,从单测,接口,功能,性能,UI,至少有五层,那其实区分这些测试类型的关键点就在于测试的侧重点不一样,接口测试是针对后端开发的接口(不一定是http的,也有可能是tcp的)。

而性能测试是偏重于产品的各方面各阶段性能(接口的性能,页面的性能,app的性能),可以说性能测试的覆盖度比接口更大一些。那我们就拿http类型的接口测试和性能测试举例,有啥侧重点区别呢?

简单来说,它俩区别就在于性能测试有多用户(并发)的概念,而接口测试只是单用户场景。我们做接口测试是是用于验证接口的请求和返回是否匹配(其实可以理解成接口测试也是一种功能测试);而性能测试则是很多人同时在做这种接口测试,更侧重于真实的用户场景。因为我们研发完的产品投入市场后,不会就专门给某一个人使用功能,肯定是会有很多人同时在用我们的产品功能。那在这里,很多人同时在用其实就是性能的一个关键点。

所以总结第二点:性能测试近乎等同于很多用户同时在做接口测试。

三、在实际场景中二者的配置区别

我们就简单地拿LR做接口测试和性能测试的过程为例吧,拿LR执行测试对于大多数人来说就三步:录制接口(或者接口抓包),配置场景,执行测试场景。

录制接口这一步是没有区别的,因为我们刚才讲到过,性能测试其实也是一种特殊的接口测试。那配置场景这一步有区别吗?

可能很多人也说没有区别,但其实是有的。

我们举例几个区别 如果是性能测试,首先要配置多用户(或者说多线程),而接口测试不用;其次如果是性能测试,建议关掉断言(否则可能压不上去,因为断言会耗费LR或者Jmeter自身的性能);最后如果是性能测试,如果压测不上去,还可能需要做分布式(简单来说,就是多台机器同时执行性能测试)。

那第三步:执行测试场景的时候有什么区别吗?刚才说到,接口测试一般是用断言来验证接口的正确性,那性能测试怎么去验证呢?在执行性能测试场景的时候,我们抛弃断言,要加入另外的校验方式:

最基本的三个点:

1、多用户下接口的响应时间,qps/tps(每秒请求量),出错率。

2、服务器上的资源监控(cpu,内存,io)。

3、被测服务的资源监控(多个服务的cpu,内存,io)以及错误日志。

以上三点都是衡量性能测试的标准,也是当执行性能测试场景出问题时候,用于定位问题的重要证据,所以我们可以知道,当接口测试出了问题,我们可以通过断言迅速知道出了问题;而性能测试出了问题,需要从多个方面多个维度去调试定位,性能测试对于系统架构的理解能力要求更高!

​现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:485187702【暗号:csdn11】

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 希望能帮助到你!【100%无套路免费领取】

你可能感兴趣的:(软件测试,程序员,接口测试,自动化测试,测试工程师)