softest 自动化测试工具

BSD 2-Clause "Simplified" License
JavaScript
Unix Like
prprprus · August 18, 2019 · 2111 次阅读 · 6 条评论

softest

softest 是用于录制浏览器交互并生成测试脚本的测试工具,简单实用。让你不用写一行代码就可以得到测试脚本。

Watch the video

Github: https://github.com/prprprus/softest

⭐️ 抬一手

如果这个项目对你有所帮助或启发,请给个 ️️⭐️!

🔍 项目来由

当我需要一个能够根据浏览器交互操作自动生成对应代码的工具时,找到了 puppeteer-recorderSelenium IDE,他们当然都是非常优秀的项目。但是在实际的使用中发现它们只能单 tab 录制,不支持多 tab,也不支持截图等功能,而且 Selenium IDE 在回放脚本时总是报错(应该是对滚动操作支持的问题),所以就自己造了个轮子。

🔥 功能

  • 单标签页录制
  • 多标签页录制
  • 屏幕截图
  • 生成测试脚本
  • 下载测试报告(包括截图和测试脚本)

⚙️ 安装

$ npm i -g softest

如果由于各种原因无法下载到 Chromium 的话,可以到这里下载,提取码 4vxu(其实用 Chrome 也是可以的)。

🚀 使用

为了方便命令的执行,建议添加环境变量:

$ export PATH=$PATH:$HOME/.npm-global/bin

运行 softest 需要指定 Chromium 所在的目录,并且指定保存测试报告的目录(绝对路径)。

$ soft -c PATH_CHROMIUM -r PATH_REPORT

如果你不清楚 Chromium 在哪个目录,可以启动 Chromium,在地址栏处输入 chrome://version/ 就可以找到它的可执行文件所在的目录。

如果你看到类似如下的输出,那么恭喜你成功了 🎉🎉🎉👏

 _______  _______  _______  _______  _______  _______  _______
|       ||       ||       ||       ||       ||       ||       |     status: running
|  _____||   _   ||    ___||_     _||    ___||  _____||_     _|     host: 127.0.0.1
| |_____ |  | |  ||   |___   |   |  |   |___ | |_____   |   |       port: 2333
|_____  ||  |_|  ||    ___|  |   |  |    ___||_____  |  |   |
 _____| ||       ||   |      |   |  |   |___  _____| |  |   |
|_______||_______||___|      |___|  |_______||_______|  |___|

🎉 Running WebSocket server successfully

🎉 Running HTTP server successfully

打开浏览器,输入 hostport,你会看到如下的 web 界面:

评论列表
dengxianghuaming 发表于 September 17, 2019

加 qq 群 766509993 讨论,我成功搭建好了

dengxianghuaming 发表于 September 17, 2019

我成功搭建好了,但是趟了蛮多坑,这个教程有点太不走心了。 有兴趣的可以私信我

姚远 发表于 August 29, 2019

soft -c PATH_CHROMIUM -r PATH_REPORT 应该是 softest -c PATH_CHROMIUM -r PATH_REPORT
我是看了视频才知道的,纠结了老一会 。
视频地址:https://www.bilibili.com/video/av64092242/ 自制展示 自动化测试工具 -- Softest (Github: https://github.com/prprprus)

cmhtdv 发表于 August 23, 2019

搞好了变量什么的
softest -c "D:\Chromium" -r "D:\Chromium_report"
难道 WIN10 不行么,这些
🎉 Running WebSocket server successfully

events.js:174
throw er; // Unhandled 'error' event
^

Error: liste
n EACCES: permission denied 127.0.0.1:8080
at Server.setupListenHandle as _listen2
at listenInCluster (net.js:1327:12)
at GetAddrInfoReqWrap.doListen as callback
at GetAddrInfoReqWrap.onlookup as oncomplete
Emitted 'error' event at:
at Server.emit (events.js:198:13)
at emitErrorNT (net.js:1306:8)
at process._tickCallback (internal/process/next_tick.js:63:19)

exit code 1
🎉 Running HTTP server successfully

cmhtdv 发表于 August 23, 2019

还有怎样指定目录,这过程一句话带过,能详细一点的步骤吗

cmhtdv 发表于 August 23, 2019

小白看不懂这些 $ 的写法的添加变量写法,什么 export
$ export PATH=$PATH:$HOME/.npm-global/bin