softest 自动化测试工具

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

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 界面:

评论列表
姚远 发表于 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