上一篇博客从源码层面分析了playwright vscode插件实现原理,在上一篇博客中提到,backend服务是一个websocket服务。这遍博客将介绍如何封装一个websocket服务,通过发送消息来执行playwright测试。
初始化项目
第一步是初始化项目和安装必要的依赖,这里需要安装playwright, @playwright/test和ws两个依赖包。后面启动执行测试的cli.js文件就是来源于@plawright/test这个包。
mkdir playwright-ws-server
cd playwright-ws-server
npm init -y
npm install ws playwright @playwright/test
实现websocket服务
下面的代码中,通过new WebSocket.Server启动一个websocket服务,监听在8085端口。当监听到message.command==“runtest”时,通过spawn启动node进程,执行playwright的测试文件。并把测试结果通过消息发送出去。
const WebSocket = require('ws');
const { spawn } = require('child_process');
const path = require('path');
// WebSocket server setup
const wss = new WebSocket.Server({ port: 8085 });
// Event listener for new connections
wss.on('connection', ws => {
console.log('Client connected');
// Event listener for incoming messages
ws.on('message', message => {
console.log(`Received message: ${message}`);
// Parse the received message
let command;
try {
command = JSON.parse(message);
} catch (e) {
consol