Wrk 是一款轻量且易于使用的命令行工具,可帮助您快速测试 HTTP 服务器的性能。
特点
- 轻量级:只有不到 1MB 大小,可以轻松部署和使用。
- 易于使用:使用简单的命令行语法,可以轻松配置和运行测试。
- 功能强大:提供丰富的选项,可自定义测试参数并生成详细的报告。
- 跨平台:可在 Linux、macOS 和 Windows 系统上运行。
安装
Wrk 可以通过以下方式安装:
Linux/macOS sudo apt-get install wrkWindows choco install wrk
使用
要使用 Wrk,只需在命令行中运行以下命令:
wrk [选项] URL
例如,要测试 `example.com` 网站的性能,可以运行以下命令:
wrk -t 4 -c 100 -d 10 example.com
上面的命令将使用 4 个线程,以每秒 100 个并发的连接向 `example.com` 发送请求,并持续 10 秒。
选项
Wrk 提供了各种选项来配置测试。最常用的选项包括:
- `-t`:线程数
- `-c`:每个线程的连接数
- `-d`:测试持续时间(以秒为单位)
- `-s`:压力测试模式(不断增加并发连接数直到服务器达到其极限)
- `-R`:打印请求和响应信息
报告
Wrk 在测试结束后会生成一个详细的报告。报告包含以下信息:
- 请求数
- 成功率
- 平均响应时间
- 吞吐量(每秒处理的请求数)
- 95% 和 99% 响应时间
示例
以下是使用 Wrk 测试 HTTP 服务器性能的一些示例:
-
测试 `example.com` 网站的并发性能:
wrk -t 16 -c 1000 -d 30 example.com
-
压力测试 `example.com` 网站:
wrk -t 16 -c 1000 -d 0 -s example.com
-
打印请求和响应信息:
wrk -t 16 -c 1000 -d 30 -R example.com
进阶用法
Wrk 还提供了一些进阶功能,例如:
- 脚本支持:可以编写脚本来自动执行测试。
- lua 扩展:可以使用 lua 脚本扩展 Wrk 的功能。
- CSV 输出:可以将测试结果导出为 CSV 文件。
结论
Wrk 是一款轻量且易于使用的 HTTP 服务器性能测试工具。它可以帮助您快速测试网站或应用程序的性能,并生成详细的报告。如果您需要一个快速且可靠的性能测试工具,那么 Wrk 是一个不错的选择。
功能测试用什么软件
问题一:软件测试一般都用到哪些工具测试工具分为很多种,主要如下: 测试管理工具:MQC,TestManager,QACenter,其中缺陷跟踪还可以使用:变更管理工具 功能测试自动化:QTP,RFP,QARun,Silk 性能测试工具:Loadrunner,Robot,QAload,WAS,Silk Performance 单元、白盒测试工具:Junit,Jmeter,devpartner,骸probe,Purify Plus 安全测试: Appscan,Fortify 问题二:页面功能测试工具用什么软件?哪个可以页面功能测试工具用吆喝科技的ab测试 问题三:有什么好的软件测试工具,比如功能测试、性能测试? 5分 1.性能测试软件:LOADRUNNER 2.性能测试软件:loadrunner 3.性能测试软件:jemter 4.性能测试软件:apache自带的 5.自动化测试软件:QTP 6.缺陷管理工具:QC 7.缺陷管理工具:TD 管理工具:bugziller 9.自动化测试软:alldaytest 问题四:软件测试工具有哪些?开源测试管理工具:Bugfree、Bugzilla、TestLink、mantis 开源功能自动化测试工具:Watir、Selenium、MaxQ、WebInject 开源性能自动化测试工具:Jmeter、OpenSTA、DBMonster、TPTEST、Web Application Load Simulator [TestDirector]:企业级测试管理工具,也是业界第一个基于Web的测试管理系统。
[Quality Center]:基于Web的测试管理工具,可以组织和管理应用程序测试流程的所有阶段,包括指定测试需求、计划测试、执行测试和跟踪缺陷。
[QuickTest Professional]:用于创建功能和回归测试。
[LoadRunner]:预测系统行为和性能的负载测试工具。
[其他工具与自动化测试框架]:Rational Functional Tester、Borland Silk系列工具、WinRunner、Robot等。
国内免费软件测试工具有:Aut龚Runner和TestCenter。
问题五:测试app用什么软件XCode有个自带的测试app工具,检测内存泄露的,左上角Xcode―open developer tool―instruments可以检测内存泄露之类的,具体操作查看官方文档 问题六:做软件的自动化测试一般用什么工具1、测试类型可以包括:白盒测试、黑盒测试(功能测试、性能测试)等。
2、不同的测试类型使用的自动化测试方法不同,白盒测试主要针对代码级的单元测试、黑盒测试主要面对功能级和系统级的验证测试。
3、自动化测试,针对白盒测试,一般需要有一定的编程基础,即能够基于功能代码写测试代码,常用的单元测试方面的自动化测试工具很多,上网一搜全是。
4、自动化测试,针对功能测试,有几种情况,基于CLI、API和GUI的测试;基于CLI、API的测试,即应用脚本技术向设备模拟发送CLI命令或者API请求,以达到控制设备的效果。
基于GUI功能测试,即应用传统的界面自动化测试工具(例如:RFT、QTP等)控制界面控件操作的方法,以达到模拟用户操作,这几种方式都需要你有一定的编码基础;基于CLI、API的需要你懂脚本技术(例如:tcl、python、ruby等),RFT需要你懂java或者、QTP需要VB等。
问题七:做软件测试需要具备哪些技能?1、 软件测试基础知识: 测试计划编写、设计测试用例、编写测试报告、编写BUG报告单、跟踪BUG修复情况、还需要良好的沟通能力、以及各种测试阶段所使用的测试方法、单元测试、功能测试、集成测试、系统测试等等、CMMI /ISO9001 2、 各种测试工具的使用: 我们在测试的工作中为了能够提高工作效率进程会用到很多工具、QTP、LR、QC、TD、Bugfree、VSS、SVN等等工具、虽然说工具不是万能的但是工具能为我们提高工作效率所以不能吧工具当神一样看待、但是必须得会熟练的使用 3、 操作系统相关知识: Windows、linux、uinx这些都必须会使用、而且不仅仅是简单的操作、一般的服务管理、注册表编辑、命令行操作都需要会、可以想象下一个连apache服务都不会安装配置的人、谁能想象你可以做好基于apache环境的测试工作、什么?不知道怎么查看磁盘压力、IO数据。
windows linux都有提供自带的工具可用于查看这些数据、perfmon、top什么的。
4、 数据库知识: 现在Oracle的DBA待遇比一般的开发人员待遇还高就知道数据库在企业中的重要性了、作为测试人员虽然不需要有DBA的能力、但是基本的数据库操作你必须得会把、不管是Oracle、DB2、MSsql还是mysql最少都应该能熟悉使用其中的一二。
揣、 计算机硬件知识: 做过性能测试的朋友都知道在性能测试过程中硬件性能也是一个非常重要的指标、CPU、内存、IO、带宽等等、如果你是做硬件测试的。
那么就更不用说了。
交换机、路由器、防火墙这些设备都需要有所了解。
6、 网络协议: 如果你还知道TCP和UDP有什么不一样的话请赶快去补充点知识吧、互联网时代、一切都通过网络传输、常用协议必须得了解、曾经面试了一个测试工程师做了2年的测试居然不知道自己测试软件使用什么协议、这样的人是你的话你敢招么? 7、 开发语言即代码编写能力: 虽然不会写代码也能做测试、但是如果你想做到高级测试工程师以上、那么代码编写能力就是必选项、如果不会写代码、那么你不可能成为高级测试。
高级测试工程师的一部分工作就是在写测试工具。
虽然测试也需要写代码但不需要和开发一样那么精通某一门语言、可是测试却需要了解很多门开发语言(举一个简单的例子:你现在所在的项目从C++语言、2年后你换工作了、新公司的开发语言是java或者是VB什么的)所以在开发语言中测试需要更广的学习。
8、 行业知识: 行业知识之所以写在最后面是因为前面的7条我们都可以通过学习来掌握、但是唯独行业知识却只能通过工作经验来积累、不要说你去看几本书就知道通信行业、医疗行业、或者是航天行业、你认为在书本上面能学到么? 由于行业知识的特殊性所以建议朋友们不要频繁的跳槽、经验的积累是需要时间来沉淀的。
9、 具有一定的美学观: 这个说起来比较拗口一点、简单来说不管是开发活动还是测试活动、最后的目标就是将产品推向市场、而且得到用户的认可。
所以如果产品在需求分析阶段就出现了偏离用户航道、那么就算测试 开发做得再好这个项目也是一样会失败。
所以各位如果有幸能够参加需求评审的话、请不要吝啬你的言论。
10、请不要忘记时刻学习着: 这点我相信大家应该都能理解所以不用写什么:仅此一点“不学习就会落后” 总结:说了那么多技能或者是说是需要掌握的技术、如果你没有一颗发现缺陷之美的心态、没有一颗以提高质量为前提来投入工作中、那么就算你其他做得再好也不过是万千软件测试从业人员中的一枚。
测试活动大部分用于发现缺陷、而发现缺陷之后的工作尤为重要:怎么样从发......>> 问题八:测试电脑性能用什么软件在我们买到一台电脑之后希望了解到很多信息。
第一、该电脑的配置是否真实,这就需要对电脑配置检测。
第二、该电脑跑分能力,这就需要跑分软件。
第三、电脑散热能力,这就要进行压力测试。
第四、单项核心性能检测:比如我们改装了SSD,那么就要对硬盘的读写速度检测。
还有显卡跑分,主要用于评价游戏能力。
等等。
实际上跑分软件众多,这就让其缺乏了可比性。
于是这里挑选最常见的系列测试软件介绍一下,怎么测试,并介绍为什么需要这些测试。
网络经验 方法/步骤1首先说说电脑的第一个检测:硬件检测,其核心是CPU和GPU(也就是处理器和显卡)。
最常用最有名的硬件检测工具是CPU-Z,优势是绿色软件、检测信息详细。
直接打开软件就会自动读取硬件信息,点击不同的标签卡就可以查看不同硬件信息。
最主要的是CPU和显卡信息。
2为什么需要这款软件呢,其实在笔记本里这款软件用处不是特别大,因为笔记本配置其实相对很死板(但是硬件详细信息还是有用的,如果你对硬件有更详细的了解的话你至少知道你买的这台电脑值不值) 这款软件更多的时候是自己组装电脑的时候,考察自己购买的配件是否合适。
比如我们贪便宜的时候会购买散装的CPU,为什么有的CPU这么便宜呢,因为虽然型号一样,一些CPU的步进低(也就是说优化做的不好的初级版本,可能有些缺陷)所以你就要明白自己不是真的捡了便宜。
另外一个重要的参数比如:显卡的显存,有的显卡显存甚至用的是DDR3,甚至比一些电脑内存频率低。
这也是价格差异化的原因。
如果你是去电脑城装机,那么这些细节就要把握,不能只看细节。
因为硬件利润的浮动还是比较大的,也不能怪奸商,毕竟利润在里面。
3第二个检测是整体跑分。
国内硬件测试软件里,大家比较熟悉的评测软件应该是鲁大师和安兔兔。
这两款的特点是方便,鲁大师集成度很高,安兔兔有多平台比对功能。
不过业内比较专业的还是PCmark和3Dmark。
从安装包就可以出,这两款都不是轻量级的。
不过虽然PCmark比较权威,不过相对而言国内用个鲁大师基本可以满足跑分要求。
因为跑分其实说明不了什么问题,主要是做一个横向的对比,只要有一个统一标准下的排行,你就可以了解你的电脑性能大概在哪个梯队。
而且跑分并不代表着电脑的全部体验。
所以常见的检测还有3个:显卡性能,硬盘性能,温度压力。
4温度压力检测有很多的软件比如furmark,这里还是介绍国内的软件吧。
鲁大师也有一个温度压力测试,原理很简单把CPU和GPU的计算量达到值,然后看温度上升情况衡量笔记本散热能力。
为什么要衡量散热能力呢,第一现在的处理器都有睿频功能在温度过高的情况下都会降低频率。
所以散热不好的电脑流畅性不好。
第二长时间高温对于硬件的损耗更大,影响设备寿命。
所以温度压力测试很有必要,同时即使不是新机,老电脑也可以测试,当温度曲线变化比较明显的时候可以考虑进行一次灰尘清理。
5硬盘性能主要影响的是文件打开速度,文件传输速度。
其中最主要的还是文件的打开写入,这个对于系统流畅性有比较明显的影响。
硬盘测试的软件比较多,这里之所以推荐AS SSD Benchmark,是因为它直接会换算成分数。
对于新手来说更加直观。
6最后一个就是游戏性能,这个可以用3dmark来完成。
这款主要检测的就是游戏性能。
虽然鲁大师里面也有,但是没有这个直观。
因为3Dmark主要测试的就是电脑3d游戏性能。
由于3dmark游戏性能得分认同度高,所以和其它电脑横向比对也很方便。
...>> 问题九:自动化测试的工具有哪些开源功能自动化测试工具:Watir、Selenium、MaxQ、WebInject 开源性能自动化测试工具:Jmeter、OpenSTA、DBMonster、TPTEST、WebApplication Load Simulator 不过,大家用的最多的就是QTP和LR哈,希望对你有帮助 问题十:软件测试工具有哪些?性能测试工具 LoadRunner惠普的强大, 很好用, 要钱 a,支持的协议多且个别协议支持的版本比较高; b,负载压力测试方案设置灵活;特点c,丰富的资源监控; d,报告可以导出到Word、Excel以及HTML格式。
Jmeter Apache开源工具强大(接近Loadrunner), 很好用 QALoad的特点: (1).测试接口多;(2)可预测系统性能;(3)通过重复测试寻找瓶颈问题;(4)从控制中 心管理全局负载测试;(5)可验证应用的扩展性;(6)快速创建仿真的负载测试;(7)性能价格比较高。
此外,QALoad不单单测试Web应用,还可以 测试一些后台的东西,比如SQL Server等。
只要它支持的协议,都可以测试。
Benchmark Factory: 首先它可以测试服务器群集的性能;其次,可以实施基准测试;最后,可以生成高级脚本。
SilkPerformance: E-Test Suite由Empirix公司开发的测试软件,能够和被测试应用软件无缝结合的Web应用测试工具。
工具包含e-Tester、e-Load和e- Monitor,这三种工具分别对应功能测试、压力测试以及应用监控,每一部分功能相互独立,测试过程又可彼此协同。
JMeter是一个专门为运行和服务器负载测试而设计、 100%的纯Java桌面运行程序。
原先它是为Web/HTTP测试而设计的,但是它已经扩展以支持各种各样的测试模块。
它和HTTP和SQL(使用 JDBC)的模块一起运行。
它可以用来测试静止或活动资料库中的服务器运行情况,可以用来模拟服务器或网络系统在重负载下的运行情况。
它也提供了一个可替 换的界面用来定制数据显示,测试同步及测试的创建和执行。
WAS是Micro$oft提供的免费的Web负载压力测试工具,应用广泛。
WAS可以通过一台或者多台客户机模拟大量用户的活动。
WAS支持身份验证、加密和Cookies,也能够模拟各种浏览器和Modem速度,它的功能和性能可以与数万美元的产品媲美。
ACT或称MSACT,它是微软的Visual Studio和Visual Studio带的一套进行程序压力测试的工具。
ACT不但可以记录程序运行的详细数据参数,用图表显示程序运行情况,而且安装和使用都比较简单,结果阅读叶很方便,是一套较理想的测试工具。
OpenSTA它的全称是Open System Testing Architecture。
OpenST的特点是可以模拟很多用户来访问需要测试的网站,它是一个功能强大、自定义设置功能完备的软件。
但是,这些设置大 部分需要通过scrīpt来完成,因此在真正使用这个软件之前,必须学习好它的scrīpt编写。
如果需要完成很复杂的功能,scrīpt的要求还比较 高。
当然这也是它的优点,一些程序员不会在意编写scrīpt的。
PureLoad一个完全基于Java的测试工具,它的scrīpt代码完全使用XML。
所以,编写scrīpt很简单。
它的测试包含文字和图形并可以输出为HTML文件。
由于是基于Java的软件,因此PureLoad可以通过Java Beans API来增强软件功能。
功能测试 QTP 惠普公司, 教父级工具. vbs web app ji desktop app 都可以测 selenium google 开源测试工具 web app 基本现在银行保险公司都用它, 功能根据测试开发人员的能力而定,可以开发的极其强大.常和testng junit Cucumber j......>>
你最喜欢用哪款前端开发工具?为什么?
前端开发最爽的地方就在于,一个编辑器,一个浏览器就足矣走天下。
编辑器——VSCode
前端开发利器,超级好用的编辑器,对于大前端来说更是不可多得。由微软出品,跨平台支持,颜值高,易上手,丰富的插件支持。下面推荐几个前端常用插件。
调试工具: 前端性能优化工具:
Yellow Lab Tools :一款Web性能及前端质量测试工具。与其他工具不同的是,它有一些在其他工具上无法看到的独特功能,例如页面加载时 JavaScript 与 DOM 互动和其他程序代码验证问题。
DOM monster :你只需要添加到你的浏览器书签中,在任何需要调试的页面点击这个书签,它就能够帮助你列出目前页面出现的性能问题。
前端开发是目前一个非常火的行业,就业前景和薪资水平都非常不错,至于开发工具的话,那就非常多了,大部分代码编辑器、IDE环境都支持,下面我简单介绍4个非常不错的前端开发工具,感兴趣的朋友可以尝试一下:
01 代码编辑器
这是目前前端开发一个非常流行的开发工具,在业界非常受欢迎,免费、开源、跨平台,由微软自主研发,可以说是良心产品,常见的智能补全、代码高亮、语法提示等功能这个软件都能很好支持,除此之外,插件扩展非常丰富,可以很好的进行代码编辑和调试,轻巧灵活,运行速度快,对于前端开发来说,是一个非常不错的选择:
这也是一个比较轻巧灵活的代码编辑器,文本编辑功能强大,完美支持3大操作平台,但原则上不免费,和VS Code类似,Sublime Text也支持自动补全、语法提示、代码高亮等常见功能,除此之外,针对前段开发也提供了非常多的插件,不管是编辑还是调试代码来说,都非常方便,对于前端开发来说,也是一个不错的选择:
02 IDE环境
这是一个纯粹的国产Web IDE开发工具,目前在前端开发中也有着较高的使用率,常见的自动补全、代码高亮、语法提示、错误检查等功能这个软件都能很好兼容,除此之外,界面柔绿、清爽护眼,针对Vue专门打造了插件扩展,可以很好的提高开发效率,还支持安卓、iOS打包,对于前端开发来说,也是一个非常不错的工具:
这是一个非常专业的Web IDE开发工具,Jetbrains公司的产品,被誉为“Web前端开发神器”、“最智能的JavaScript IDE”,除了基本的智能补全、代码高亮、语法提示等常见功能,这个软件还支持代码分析与重构、 联想查询、 单元测试等高级功能,因此在开发效率上更高,也更适合大型项目,对于多人协作的前端开发来说,是一个非常不错的选择:
和idea同属于jetbrains公司开发的,它是旗下一款JavaScript开发工具,被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。
早起作为一个插件可以集成与Eclipse中来开发前端,现在已经独立出来,也是我最早接触js所使用的一款开发工具,如果熟悉了Eclipse快捷键的童鞋可以快速上手。
一款代码编辑器,借助丰富的插件资源,可以扩展成强大的前端开发工具,和IDE相比,属于一款轻量级的,启动特别快。
作为开源老大哥GitHub出的一款代码编辑器,和上面那个比较而言,插件略少,但和GitHub无缝结合,尤其是markdown编写,界面也很漂亮。
TextMate是Mac下的著名的文本编辑器软件,与BBedit一起并称苹果机上的emacs和vim。尤其适合程序员使用,可以定制许多贴心使用的功能。
Emacs即Editor MACroS(宏编辑器),是一种强大的文本编辑器。Emacs使用了Emacs Lisp这种有着极强扩展性的编程语言(它的核心是一个Emacs Lisp解释器),并实现了文本编辑支持等的扩展。
Notepad++是 Windows操作系统下的一套文本编辑器(软件版权许可证: GPL),有完整的中文化接口及支持多国语言编写的功能(UTF8 技术)。
VSC-VSCode
轻量快速,高颜值,社区开源,丰富扩展,微软支持
还有超好用的远程开发(vscode remote)和协作(live share)支持
HTML通常会和JavaScript、CSS同时出现。三者均是前端开发最常用到的。目前最常用到的HTML其实就是HTML5。常用的前端编程软件有HBuilder、Sublime Text等等。
HBuilder是一款免费的国产前端开发工具,编者用的就是HBuilder,对于小白和英语不太好的前端开发者这是一款难得的IDE。对代码自动补全方面简直是强大到没朋友。强力推荐。
Sublime Text是一个轻量级的编辑器,不端支持前端的html,js,css。还支持觉得多数的后端语言,比如C语言、java、python等。sublime text的强大之处是支持各种插件而且快捷键非常好用,可以极大的提高开发效率。缺点是代码提示方面不如Hbuilder。
很高兴能回答你的问题,作为一个后端开发,也曾经开发过前端,也用过很多前端开发工具。
text用着确实不错,但是代码开发提示不强,平时用着文本编辑器还是可以的。
+用了一段时间各种不适用,最后就卸载了。
code用着一段时间写vue,需要安装插件,而且提交代码用感觉不方便,把不想提交的最后提交了,导致代码冲突,也许是因为自己用不熟。
推荐使用,代码智能提示,而且提交代码方便。
无论是Python、Java、javascript,当我们选择一款开发工具时,很多人都会首先想到jetbrain全家桶,Webstorm、IDEA、Pycharm....不得不说,jetbrain在开发工具方面真的是颇有心得、炉火纯青。
但是,如果做前端开发,我认为除了jetbrain的webstorm,还有很多选择,而其中我最为推荐的当属VS Code,下面就来介绍一下。
VS Code
微软在开发工具领域已经有了多年积淀,而VS Code有时微软结合了visual studio和其他开发工具,不断改进、优化推出的一款免费开发工具。
可以说VS Code是当下最为热门的开发工具之一,对比于eclipse、IDEA这些老牌开发工具,微软对于VS Code的改变更为大胆创新,已经处于领头羊的地位。每年微软开发者大会,都会对 VS Code进行大幅度的创新,经过多年的优化,VS Code已经让很多开发者爱不释手。
首先说一下它几个为人熟知的优点,
首先说一下轻量化,我觉得仅凭这一点,就足以让jetbrain全家桶汗颜。无论是webstorm、还是IDEA,最令人痛苦的就是打开过程,臃肿、漫长,加载工程项目和配置项需要多大几分钟,令人无法忍受。而VS Code则不同,它更像一个编辑器,能够秒级打开,速度堪比UE、notepad++这些文本编辑器。
其次说一下丰富插件,丰富的插件造就了VS Code完整的生态,“你想要的,这里都有”,无论是标签样式还是DEBUG或者功能增强,VS Code都有非常多热门的插件,使得你的开发效率大大提升,当然,前端需要的那些优质插件这里都有。
其实,让我转向VS Code并非上述这两点,而是 远程开发 。
我觉得这是微软大胆创新和引领者角色必然的产物,让很多其他开发工具很难望其项背。
有了VS Code远程开发功能,我们可以实时同步本地和服务器代码,不需要再去复杂的配置远程服务器,对于项目管理也非常方便。
WebStorm和PS
尤其PS,平时生活中也需要用到,挺方便的
喜欢用webstorm,atom和vs code,sublimetext都装了,几乎只用webstorm,atom界面是漂亮,也是我第一个下载安装的,装了各种插件,那时初学,感觉提示不全,还有就是插件安装了几个后开机明显变好慢,无奈下了webstorm,感觉很爽
Google PageSpeed Insights 可以为网站生成性能报告,它在移动设备和桌面设备上都是免费的。并且还给出了影响页面加载速度的原因,并为这些问题提供了解决方案。网站速度按照 100 分进行划分,其中:
2. Pingdom Website Speed Test
Pingdom Website Speed Test 可以全面分析影响页面Web速度的因素。此外,还可以查看网站在亚洲、欧洲等多个不同的地理位置的性能信息。
3. WebPagetest
WebPagetest是 AOL 开发的一款在线的免费性能评测网站,从全球多个地点运行免费网站速度测试。可以运行简单的测试或执行高级测试,包括多步骤事务、视频捕获、内容阻塞等等。还将依据测试结果提供丰富的诊断信息,包括资源加载瀑布图,页面速度优化检查和改进建议,会给每一项内容一个最终的评级。
4. GTmetrix
GTmetrix 是一个类似于 pingdom 的工具,可以快速轻松地测试网站速度。它主要有PageSpeed和YSlow两部分组成,并提供相应的得分数据,能够真实的反应出网站的性能,并且会提供可行性建议来帮助改善网站性能。
5. Keycdn Tool
Keycdn Tool 是一个在全球 10 不同地点的网站速度测试工具。它允许测试任何页面的性能。返回的结果将提供请求、内容大小和加载时间等详细信息。此外,还有一个完整的瀑布图,详细说明了每个资源的加载时间和 HTTP 头。
6. GiftOfSpeed
GiftofSpeed是一款免费网站载入速度测试工具,可以在上面获得网站综合性能信息,它能够展示网站加载时间以及评估网站有哪些需要改进的地方,并给予一个客观的综合评分。
GiftofSpeed 的测试结果以瀑布流展示,可以很容易看到网站加载速度,每一项资源的的载入顺序、大小与响应时间的长短,方便了解网站的各项载入资源。此外,它还提供了载入时间最长的内部文件以及外部文件,从而分析出是由哪些因素影响了你网站的载入速度,就可以专门针对这些载入时间较长的元素进行优化,从而最大限度提升网站载入速度。
7. Pagelocity
Pagelocity 是一个网站分析性能测试工具。这个工具也提供了追踪竞争对手的能力。代码检视图在类似工具中是独一无二的。如果想知道 TTFB 和图形化 DOM 元素等,都能通过这项工具获取到。
8. Sucuri Loadtime Tester
Sucuri Load Time Tester 是一个网站分析性能测试工具,它用不同的颜色表示网速快慢,可以很直观地看出测试网站在不同国家的运行速度。绿色表示畅通,没有颜色的普通数字表示一般,黄色表示中等偏慢,红色表示缓慢。
9. GEEKFLARE
GEEKFLARE 这是一套免费的性能测试工具,用于测试网站的 DNS、安全性、性能、网络和 SEO 等问题。
10. Dareboost
DareBoost 是一个免费网站速度测试和网站分析工具。它提供超过 100 种不同的检查项目用以分析你的网站的速度。可以测试桌面端与行动页面、Firefox 与 Chrome 和五个节点的速度差异。
如何对API进行负载测试与调优(一)
本文由Donny译自 的 《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。
这是一个棋牌类游戏的 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,不需要从磁盘读取或在内存中保存大型数据集。
我们选择 实例就够了。
注意:我们对比过其他相似处理资源数但内存更大的AWS实例,但实际测试中内存大部分没使用,所以我们选了 接下来,我们将一个配好的负载测试实例(服务器)运行起来,这只是一个运行模拟测试程序的服务器,它会通过从多个并发连接重复发送请求到我们的API服务器。
你需要模拟的负载越高,机器的性能就要求越高。
再次,这也是一个CPU密集型工作负载。
这里我们选择具有4个虚拟核,16个 ECU的优化处理器的 服务器 我们选择在相同的可用区内部署所有实例(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 工具 正如你之前所看到的,运行一个简单的负载测试需要准备好配置环境。
最近有些产品提供负载测试服务。
我们试过两个, 和 Blazemeter (话外:阿里也有性能测试工具 PTS ,老外估计没试过)。
注意:我们只试了这两个工具的免费版,所以得到的测试结果仅适用于免费版的限定。
Blazemeter 这个产品和我们前面提到的JMeter一样有同样的毛病:如果你只需要用在高负载测试,你需要在GUI界面上创建测试计划,然后在另一个运行非GUI模式的JMeter中导入这些计划。
Blazemeter允许你上传JMeter的测试计划到他们的云端并运行,但可惜的是免费版只能设置50个并发用户。
它是一款 SendGrid 出品的简单而强大的云负载测试服务工具。
它有你所需要的功能和漂亮的可视报告。
的免费版还是不错的,每秒最多可以有次请求的吞吐量,你基本上就可以用它来运行一个真实的负载测试。
我们推荐使用多个工具,以便可以多重检查我们的测试结果,不同的工具有不同的功能与方法,可以更多方面地反映测试结果。
我们先尝试找到我们的API可以承受的最大吞吐量。
在这个吞吐量下,我们的API服务达到最大CPU利用率,同时不会返回任何错误或超时。
这个吞吐量就可作为我们后面测试要用的每秒请求数。
同样,重要的是要注意到:CPU是限制因素之一,但你也还必须清楚地知道哪些资源会成为你API的性能瓶颈。
我们有必要在API服务器上安装一些工具,以便我们在测试过程中监控资源的利用率情况。
我们使用 和 PM2 模块。
我们的应用运行了一个非常简单的HTTP 服务。
是单线程设计的,但为了利用 AWS实例中提供的双核,我们使用PM2的集群功能来运行应用程序的两个工作进程。
由于我们的API是完全无状态的,所以很容易使用PM2的 核心集群模块(PM2在内部直接使用)。
PM2提供的集群功能提供了不错的快捷命令来start/stop/reload应用程序,也可以监控进程。
我们先使用对API进行测试。
以下是持续30秒,每秒10,000次请求的测试结果,次请求是免费版中允许的最大吞吐量。
在测试期间,我们观察到API服务器的CPU处理器在测试期间只有几次达到100%的容量。
这表示我们的API可能还可以处理更高的吞吐量。
我们接下来通过运行wrk进行第二次测试证实了这一点。
我们的目标就是要将我们的API服务器性能推到极限。
wrk -t 4 -c 1000 -d 60 --latency --timeout 3s这里是我们对这个测试做了多次重复测试的结果:Running 1m test @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 requests in 1.00m, 189.89MB read Requests/sec: .04 Transfer/sec: 3.16MB 结果表明,我们的预感被证实:它达到16,206请求/秒,同时保持合理的延迟,第99百分位只有75.86毫秒。
我们将这作为我们的基准最大吞吐量,因为这一次我们看到了API服务器的最大容量处理能力:我们刚看到用一个简单的方式来找出你的API可承受的最大流量负载,同时在这过程中我们介绍并讨论了我们看到的一些工具。
请继续关注本文的第二部分,我们将介绍如何控制流量,不要让随随便便一个客户端就可以轻松搞跨您的API。
我们将展示如何通过在架构前端添加代理来确保我们的API的性能不受影响。
本文译自: How to load test & tune performance on your API