K6+Playwright实现并发测试
K6下载地址
下面以windows为例来介绍整体的部署使用,此方案使用js编写,对于不熟悉python的同学来说比较适合。(虽然整个方案用到了python但是,不需要进行python编码)
需要提前安装好node和python
软件安装
到下载地址下载对应的安装包,windows使用msi版本的。
下载后一路下一步,安装完成。
验证是否安装成功->打开cms输出k6
出现logo则表示安装成功
安装Playwright依赖
Playwright是由微软开发的一款现代化跨浏览器自动化测试工具,专为Web应用程序的端到端测试和浏览器自动化而设计。它支持Chromium、WebKit和Firefox三大浏览器引擎,能够模拟真实用户操作进行可靠的自动化测试。不同于传统测试工具,Playwright通过直接与浏览器引擎交互,提供了更快速、更稳定的测试体验。
该工具最显著的特点是支持跨平台(Windows/macOS/Linux)和跨语言(JavaScript/TypeScript/Python/.NET/Java)开发。Playwright内置自动等待机制,能智能等待元素可操作状态,避免了传统测试中常见的人为超时设置问题。其独特的浏览器上下文隔离功能,使得每个测试用例都在独立环境中运行,确保测试隔离性
依次执行下列命令:
npm init playwright@latest -- --quiet
python -m pip install playwright
playwright install chromium # 只安装必要浏览器
如果提示你pip版本过低,则使用提示给出的命令进行版本升级:python.exe -m pip install --upgrade pip
编写自动化脚本
新建test.js文件并贴入以下代码
import { browser } from 'k6/browser';
import { sleep } from 'k6';
export const options = {
scenarios: {
ui: {
vus: 30, //并发用户数
iterations: 30, //遍历次数。不能小于并发用户数
executor: 'shared-iterations',
options: {
browser: {
type: 'chromium',
},
},
},
},
thresholds: {
checks: ['rate==1.0'],
},
};
export default async function () {
const page = await browser.newPage();
try {
await page.goto('http://www.baidu.com');
sleep(60);
await page.screenshot({ path: 'screenshots/screenshot.png' });
} finally {
await page.close();
}
}
运行脚本
执行:k6 run test.js
等待执行完成
则会在test脚本下生成页面截图。
其他事项
官方文档:
https://grafana.com/docs/k6/latest/using-k6-browser/
需要实现自动输入,自动登录等功能则可以根据官方文档自己开发。
License:
CC BY 4.0