当前位置: 首页 > 后端技术 > Node.js

花了将近3个月的时间制作了一个页面元素权限自动化测试工具

时间:2023-04-03 20:37:02 Node.js

1。前言公司的一个后台管理系统项目比较大,模块、功能、角色比较多。每个角色都有不同的权限,可以访问。页面也不一样,页面里面的按钮也不一样。这样的系统如果遇到重大升级,需要投入大量的测试精力去测试各个页面的权限和页面中的按钮是否正确。这个时候Leader会有一个想法,能不能用node搭建一个自动化测试工具?,于是一项神圣而艰巨的任务交给了我。由于之前没有接触过自动化测试,突然被要求用node来写这么一个工具。想必不知从何下手,于是本能地在Github上搜索了一下,看看有没有类似的产品。我找到了以下内容,但他们并不满意。我的需求:Autoline是国内大牛用Python写的一个工具。他把python的功能转换成UI,然后我们就可以在自动化测试工具的管理后台一步步添加测试步骤,但是它有一个致命的问题——测试步骤的顺序不能调整。如果前一步错了,后面的所有步骤都将白费。SeleniumIDE比SeleniumIDE更强大!这个工具真的很强大。一开始也想用,最后发现还是不能满足我的需求。我要的效果是什么?请看下面的Gif图(本人近3个月的成果):2.技术栈主栈:node.js+puppeteer其他依赖:lowdbstoretestresultdatalog4jswritelogdesktop-screenshotscreenshot,仅在启动浏览器时使用,使用屏幕的宽高,打开浏览器时,根据屏幕大小设置浏览器大小image-size获取图片大小,结合[desktop-screenshot]使用cheerio向html中插入数据测试报告模板为什么选择Puppeteer?简单来说:因为Puppeteer是由Chrome开发团队开发维护的,基于nodejs包。JS可以执行的代码可以执行)可以拦截页面中的请求,可以截图(只能拦截当前页面)3、如何获取页面的数据?比如如何监控页面中的用户信息、列表数据等页面跳转?比如A页面的测试正在执行,突然想到要跳转到B页面,这时候应该结束A页面的测试。如何判断元素是否存在?如何操作dom?如何点击元素?解决完上面的问题,接下来就是如何编码了。4.实现原理我写完开发手册再写,呵呵...5.测试报告,log测试报告(测试报告是html写的,比word和excel灵活):log