自从项目上了这款轻量级压力测试工具,睡觉真香

这篇具有很好参考价值的文章主要介绍了自从项目上了这款轻量级压力测试工具,睡觉真香。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

压测背景

单接口压测是为了能够在开发阶段对单个接口进行性能测试,快速了解接口的承载能力、发现性能瓶颈,在开发早期就能发现问题,消除性能风险。

作为一名优秀的后端工程师,在交付线上环境前,对自己的每一个接口进行简单的性能检测,是一种良好的职业习惯。

另外,当业务在生产环境遇到实际接口请求瓶颈时,通过模拟真实的并发环境,也是一种快速寻找问题的方式。

压测结果的影响因素

高并发结果很容易受外界因素影响,压测时需要尽量减少外界因素影响。

影响压测结果外界因素有本机句柄数限制,dns解析速度,网络质量,服务端连接数限制等等。例如使用1w并发,很容易出现超过本机最大句柄数限制(一般最大限制1024),超过句柄数限制的请求会因为句柄数受限导致连接失败。

因此选择合适并发数对测试接口性能非常重要,并非并发数越大越好。

实际实践中建议并发数先在10,100,500,1000左右分别测试下,如果失败率小于1%,再考虑逐步增加并发数量。只有增加并发每秒请求数量能持续增加才是健康的使用方式。当并发数增加到一定数量后,接口响应能力不再增加或者错误数变高,这时候再增加并发量是无效的

压测工具

1、Jmeter

Jmeter是apache公司基于java开发的一款开源压力测试工具,体积小,功能全,支持http、https、websocket、grpc等协议的并发压测。但缺点在于比较消耗单机性能,一般用于分布式压测或作为压测引擎使用。另外如果只想针对一个接口进行简单测试,需要较深的操作路径,使用起来较为繁琐。

2、ab

ab是apache自带的压力测试工具。ab非常实用,它不仅可以对apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试。比如nginx、tomcat、IIS等。

但唯一不足的是,ab基本是命令行执行,如果一个接口需要输入较复杂的请求参数,操作起来会比较繁琐。

3、Apipost

自7.0.12版本起,Apipost上线了单接口一键并发功能。据官方说法:底层采用了自研的基于Golang语言的压测引擎

已开源:https://github.com/Apipost-Team/runnerGo

能较好的支持单机高并发压测。目前支持http/https协议,对websocket、grpc等协议尚未支持。

下载:https://www.apipost.cn/download/ver10099

本文简单介绍基于http/https协议的压测实践,出于便捷性考虑,这里采用 Apipost 的压测模块。

压测流程

1、压测模块位于API调试模块下,在进行接口调试时可以看到,如图所示:

自从项目上了这款轻量级压力测试工具,睡觉真香

2、在输入被压测的URL后,在压测tab下,填写并发数和轮次;

3、点击【开始压测】按钮,页面展示【压测中…】状态;

自从项目上了这款轻量级压力测试工具,睡觉真香

4、压测任务完成后,页面展示压测结果,完成压测。

自从项目上了这款轻量级压力测试工具,睡觉真香

压测结果计算方式:

自从项目上了这款轻量级压力测试工具,睡觉真香文章来源地址https://www.toymoban.com/news/detail-404209.html

到了这里,关于自从项目上了这款轻量级压力测试工具,睡觉真香的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux项目实战C++轻量级Web服务器源码分析TinyWebServer

    TinyWebServer是Linux下C++轻量级Web服务器,助力初学者快速实践网络编程,搭建属于自己的服务器.作为新手拿它练手入门再好不过的不二之选,项目开发者社长也写了一些文章帮助初学者理解,但是,非学习总结的总是容易忘,这里记录一下学习过程。 源码链接: https://github.co

    2024年02月16日
    浏览(64)
  • python Web开发 flask轻量级Web框架实战项目--学生管理系统

     上次发的一篇文章,有很多朋友私信我要后面的部分,那咱们就今天来一起学习一下吧,因为我的数据库这门课选中的课题是学生管理系统,所以今天就以这个课题为例子,从0到1去实现一个管理系统。数据库设计部分我会专门出一个博客的,敬请期待吧~~~ 介如很多朋友问

    2024年02月16日
    浏览(62)
  • 用go设计开发一个自己的轻量级登录库/框架吧(项目维护篇)

    本篇将开始讲讲开发库/框架的最开始阶段,也就是搭建一个项目 源码:weloe/token-go: a light login library (github.com) 项目结构,不是上一篇所说的代码架构,而是分包,明确的分包更有助于我们的开发。本框架分包如下 我们选择使用GitHub进行代码托管,同时也使用GitHub Actions进行

    2024年02月03日
    浏览(51)
  • Qt优秀开源项目之二十一:遇见QSkinny,一个轻量级Qt UI库

    目录 一.QSkinny简介 二.工作原理 三.编译 QSkinny库基于Qt Graphic View和Qt/Quick中少量的核心类。它提供了一组轻量级控件,可以在C++或QML中使用这些控件。QSkinny默认是启用硬件加速的,非常适合嵌入式设备,目前已经应用于大量汽车GUI的代码实现中。正如预期的那样,它有良好的

    2024年01月23日
    浏览(63)
  • git轻量级服务器gogs、gitea,非轻量级gitbucket

    本文来源:git轻量级服务器gogs、gitea,非轻量级gitbucket, 或 gitcode/gogs,gitea.md 结论: gogs、gitea很相似 确实轻, gitbucket基于java 不轻, 这三者都不支持组织树(嵌套组织 nested group) 只能一层组织。 个人用,基于gogs、gitea,两层结构树 简易办法: 把用户当成第一层节点、该用户的

    2024年02月07日
    浏览(80)
  • 轻量灵动: 革新轻量级服务开发

    从 JDK 8 升级到 JDK 17 可以让你的应用程序受益于新的功能、性能改进和安全增强。下面是一些 JDK 8 升级到 JDK 17 的最佳实战: 1.1、确定升级的必要性:首先,你需要评估你的应用程序是否需要升级到 JDK 17。查看 JDK 17 的新特性、改进和修复的 bug,以确定它们对你的应用程序

    2024年02月07日
    浏览(60)
  • 轻量级 HTTP 请求组件

    Apache HttpClient 是著名的 HTTP 客户端请求工具——现在我们模拟它打造一套简单小巧的请求工具库, 封装 Java 类库里面的 HttpURLConnection 对象来完成日常的 HTTP 请求,诸如 GET、HEAD、POST 等等,并尝试应用 Java 8 函数式风格来制定 API。 组件源码在:https://gitee.com/sp42_admin/ajaxjs/tr

    2024年02月01日
    浏览(73)
  • 一种轻量级定时任务实现

    现在市面上有各式各样的分布式定时任务,每个都有其独特的特点,我们这边的项目因为一开始使用的是分布式开源调度框架TBSchedule,但是这个框架依赖ZK, 由于ZK的不稳定性和项目老旧无人维护 ,导致我们的定时任务会偶发出现异常,比如:任务停止、任务项丢失、任务不

    2024年02月14日
    浏览(48)
  • Kotlin 轻量级Android开发

    Kotlin 是一门运行在 JVM 之上的语言。 它由 Jetbrains 创建,而 Jetbrains 则是诸多强大的工具(如知名的 Java IDE IntelliJ IDEA )背后的公司。 Kotlin 是一门非常简单的语言,其主要目标之一就是提供强大语言的同时又保持简单且精简的语法。 其主要特性如下所示: 轻量级:这一点对

    2024年02月07日
    浏览(161)
  • C++轻量级单元测试框架

    单元测试是构建稳定、高质量的程序、服务或系统的必不可少的一环。通过单元测试,我们可以在开发过程中及时发现和修复代码中的问题,提高代码的质量和可维护性。同时,单元测试也可以帮助我们更好地理解代码的功能和实现细节,从而更好地进行代码重构和优化。

    2023年04月25日
    浏览(76)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包