"""

之前偶然听到k6这款便捷的性能测试工具,好奇之下就用来玩了一下,结果真的不懒,做一些单接口的压测完全够用了,

所以写下这个介绍文档,第一是自己做一个笔记,第二是为有需要的朋友简单介绍一下,方便快速上手。

"""

简介

k6是高性能的负载测试工具,也是一种高性能工具,旨在在预生产和QA环境中以高负载运行测试,可使用JavaScript编写脚本。它是一个以开发人员为中心(当然,测试人员亦可以使用,因为真的很方便),免费和开源的负载测试工具,旨在使性能测试具有生产力和令人愉悦的体验,可最大程度地减少系统资源的消耗。官网:https://k6.io/

安装与运行

以window系统为例,到官网下载最新版本,根据安装提示默认安装即可。安装完成后在命令窗口输入:K6,检测是否安装成功。出现如下图就是成功了:

执行脚本的只需要在输入:k6 run +脚本名。如下图:

执行完成后会在界面给出测试结果:

将测试结果保存到指定的位置:

HTTP请求

k6可以使用JavaScript进行快速的编写脚本,对有前端经验的同学特别友好,我在实际的使用过程中也是使用的JavaScript进行编写。下面简单举两个常见请求类型的例子。

GET请求

如图所示,k6的请求方式和其他工具的接口请求方式并无太大的区别,只需要导入  import http from 'k6/http';;  按照js的语法依次传入URL,header即可。

POST请求

post请求如下图所示,依次传入URL,传参,header即可。

断言设置

K6的断言个人认为是比较简洁的,导入check()后即可,而且一个check()可以添加多个断言。

设置并发

k6中有两种设置并发、运行时间的方法。

第一种是在命令行内:

第二种是在脚本内:

K6还有支持更多的条件设置,请阅读官网文档。

cookie设置

k6有多种的cookie的写法,如图是能够快速入手的写法:

测试结果

名称

描述

vus

当前的虚拟用户数

vus_max

虚拟用户的最大数量(已预先分配VU资源,以确保在扩大负载级别时性能不会受到影响)

iterations

测试中的VU执行JS脚本(default函数)的总次数。

iteration_duration

完成默认/主函数的完整迭代所花费的时间。

dropped_iterations

在k6 v0.27.0中引入,由于缺少VU(对于到达率执行程序)或缺少时间(由于基于迭代的执行程序中的maxDuration过期)而无法启动的迭代次数。

data_received

接收到的数据量

data_sent

发送的数据量

checks

断言成功率

其中iteration_duration中,我们可以看到平均消耗时间,最大最小,以及百分之90请求所用时间等,这点与jmeter相识。

其他操作

在K6执行测试任务时,我们可以再次打开一个新的命令窗口来控制测试的暂停测试等操作:

  • k6 pause -暂停测试执行,暂停所有VU

  • k6 resume -取消暂停k6,导致所有活动的VU恢复执行

  • k6 scale -更改活动VU的数量(或允许的最大VU数量)

  • k6 stats -报告当前已收集的统计信息

  • k6 status -报告测试的一般状态

Selenium Firefox驱动程序:使用Firefox浏览器自动进行测试WebDriverIO教程:处理Selenium中的警报和覆盖TeamCity VS Jenkins:选择正确的CI / CD工具如何在Selenium WebDriver中处理Web表?Python中的正则表达式(二)Python中的正则表达式和示例Python中的文件处理

一码不扫,
可以扫天下?添加小编进自学群

获取更多学习资源

性能测试工具_K6性能测试工具的使用入门相关推荐

  1. 软件测试性能测试结果,软件性能测试结果分析工具的研究与设计

    摘要: 随着软件行业的发展,针对软件系统尤其是Web应用系统的性能测试技术已经成为了软件测试领域的热点.虽然许多测试工具对性能测试提供了自动化支持,但性能测试的执行过程仍具有极高的专业性和复杂度,这一 ...

  2. 并发测试工具_性能测试工具基本工作原理及基本操作流程

    性能测试的基本概念 性能测试:是指在特定情况下测试系统如何执行的.资源的使用.可扩展性和可靠性也是性能测试的范畴.性能测试是性能工程的一个子集,主要发现软件架构以及设计导致的性能问题. 性能测试的目标 ...

  3. 使用 Apache JMeter™工具进行性能测试

    使用 Apache JMeter™工具进行性能测试 一.性能测试的定义. 性能测试是通过自动化的测试工具模拟多种正常.峰值以及异常负载条件来对系统的各项性能指标进行测试.负载测试和压力测试都属于性能测 ...

  4. jmeter工具进行性能测试

    jmeter工具进行性能测试 性能测试理论概述 背景 性能测试指标 TPS 平均响应时间 TOP响应时间 其他指标 性能监控指标 性能测试流程 jmeter工具 jmeter常用组件 jmeter命令 ...

  5. Stress命令Linux性能测试,压力测试工具(Centos演示)

    Stress命令Linux性能测试,压力测试工具 1.模拟一颗cpu打满 stress -c 2 (见如下图:使用htop或者top查看想打满几颗cpu就输入,对应数字即可) 2.模拟产生2个进程,每 ...

  6. 【性能、Jmeter】性能测试知识以及jmeter工具的基本使用方法

    文章目录 1.性能测试基础 1.1.性能测试的概念 1.1.1.性能 1.1.2.性能测试 1.1.3.性能测试的目的 1.1.4.功能测试与性能测试 1.2.性能测试的策略 1.2.1.基准测试 1 ...

  7. win服务器性能测试,windows服务器性能测试

    windows服务器性能测试 内容精选 换一换 针对DCS Redis实例的性能评估,比如测试某种实例规格的set或get在某个高并发场景下的性能,可参考本文的测试方法.Redis客户端源码包含一个名 ...

  8. python可以用来写什么工具_python写工具

    谷歌开源 Python Fire:可自动生成命令行接口 今天我们很高兴地宣布 Python Fire 开源.Python Fire 可从任何 Python 代码生成命令行接口(command line ...

  9. 转:性能测试中的性能测试指标与用户体验分析

    转自:http://www.ltesting.net/ceshi/ceshijishu/xncs/2012/0223/204182_2.html 性能测试中的性能测试指标与用户体验分析 网络应用性能分 ...

最新文章

  1. Windows启动文件
  2. 【Qt】信号和槽对值传递参数和引用传递参数的总结
  3. python输出结果空格分割_python 输出列表元素实例(以空格/逗号为分隔符)
  4. js 数组修改watch_前端面试:专注Vue.js常见的问题答疑,掌握了基本上Vue就过关了...
  5. echart data放入数组_线性表(数组、链表、队列、栈)详细总结
  6. asset文件夹路径 unity_Unity Assets目录下的特殊文件夹名称
  7. Python类、模块、包的概念及区别
  8. android Audio调试程序常用命令
  9. OEM XP 让你的盗版xp像品牌机一样华丽
  10. No.1大数据入门 | 环境搭建:VM、CentOS7安装及网络配置
  11. android取消输入法联想,输入法联想功能,怎么清除输入法联想
  12. Xilinx FPGA 下载器驱动提示“系统找不到指定的路径”的解决办法
  13. 【JavaScript】ES6 数组的扩展
  14. c 语言编辑器 win7旗舰版,如何使用大地win7旗舰版内置字符编辑程序
  15. Axure的交互事件
  16. 本地机器 Google Colab 通过 SSH 连接远程服务器
  17. Google收录一个新网站要花多久?
  18. Linux下重置(修改)mysql8.0密码
  19. Android nomedia 避免图片等资源泄露在系统图库当中
  20. SPOJ7258 SUBLEX - Lexicographical Substring Search

热门文章

  1. 阿里云数据库RDS MySQL 物理全备文件数据恢复至自建数据库Mysql 5.7中
  2. 电脑开机出现英文“ERROR:System fan has failed”的错误提示
  3. SVN篇:Shell脚本实现SVN启动,停止,重启
  4. 使用 HTTPS 方式登录防火墙USG6000设备
  5. Eclipse中,查找文件后(使用ctrl shift R/T),如何关联到文件所在目录(查看文件所在的目录结构)。
  6. 升级node,老的项目启动不了的解决方法(亲测有效)
  7. “完美”解决微信小程序购物车抛物动画,在连续点击时出现计算错误问题,定时器停不下来。
  8. 未能加载文件或程序集 CrystalDecisions.Web Version=10.2.3600解决方法
  9. vue项目报错,解决Module build failed: Error: Cannot find module ‘node-sass‘ 问题
  10. layui报错 “Layui hint: 模块名 xxx 已被占用“ 的问题解决方案