起因
最近在Cnode社区看到社区大佬们重构代码用了新的技术栈,现正在公测阶段。因为正好擅长用Node.JS来开发自动化测试。为了对社区做点贡献,拉了几个技术好友,计划利用周末时间帮社区写些UI自动化代码。这一建议得到了CNodeJS的狼叔的大力支持,这一建议的帖子置顶后,又有好多热心的朋友加入了进来,有擅长自动化开发的、也有擅长手动测试的同学。
计划
- 时间:准备星期日(03-25)用一天时间进行。
- 地点:四川北路乍浦路的一间创业工坊
- 目标:基于Node.js开发CNode社区的UI自动化测试代码。
- 使用技术:当然要用Node.JS. 主要用Nodejs + Cucumber + Selenium
- 开发环境:Windows 系统使用 CukeTest 进行开发。Mac 系统使用 VSCode 进行开发
迫不急待的小朋友可以先来看一下成果,经过一整天的努力,CNodeJS的各项主要界面测试都实现了,不光有代码,而且有自然语言描述的测试用例,确保所有人都能看得懂:
所有自动化测试的代码和测试用例都放在github上,网址在: https://github.com/CnodejsTest/UIAutoTest
感兴趣的只要拉下来,按照描述的步骤就可以运行了。
星期日
是我们自动化测试的开发日。上午10点乍浦路480号,同学们都到齐了。有一些手工测试的同学,一些自动化测试的同学。按照计划本次参与活动的同学有8名小伙伴公司做手工测试,4名小伙伴做自动化测试。他们当中有些知道行为驱动测试,有些还不知道这些概念。
为了让大家能够很快的融入到一起敏捷开发,2名手工测试小伙伴与1名自动化测试小伙伴1组,手工测试的小伙伴写测试用例,自动化测试小伙伴写UI自动化脚本。位置安排是自动化测试小伙伴坐在中,手工测试小伙伴坐在两边,这样更易于他们沟通和学习。
上午
上午主要是“统一思想,提高认识”,为了让所有人都了解开发的技术和方法。我们主要使用CukeTest客户端来阐释下行为驱动测试的概念。我们拿CNodeJS社区的“登录”场景为例,作为所有人的热身练习。
开发的过程如下:先在CukeTest上写测试用例。用例也写的差不多的时候可以在CukeTest中一键生成自动化代码框架。然后实现这个框架。边填充代码,边在页面上定位元素。将元素定位的信息填充到代码中。我们知道,Selenium定位信息可以选ID, CSS, XPath等。当实现完这个测试用例就可点击运行。经过验证能够正常登陆。
有些手动功能测试的小朋友从来没做过自动化测试的开发,但跟着自动化测试老司机们,也没过多久就写出来了。而且能够成功运行,登陆到测试的环境搭建的CNodeJS社区。有些不由的感叹自动化测试也可以这么简单。效果如下:
当这个场景完成后,通过CukeTest一键转换成“场景”大纲就可添加更多的测试数据了。 不光有正确的用户名和密码登录,而且可以验证错误用户名和密码登录。这样一个测试场景就变成了n个: 上午主要就是开发登陆场景。由于大家都是临时过来,刚开始还是不是很熟练,经过几轮的协作,大家慢慢熟悉了开发流程。
下午
中午吃过饭,为提高效率,自动化测试小伙伴就单独出来去写UI自动化代码。功能测试小伙伴去学习一些基本的selenium-webdriver 知识,他们通过使用CukeTest生成的自动化代码,模仿之前的代码能够很快速的实现一个功能,大家都很开心。 自动化同学相继开发出来测试脚本,所以晚些时候,主要调试自动化同学开发的脚本,并且对场景进行添加校验点。最终,我们实现了社区的用户注册,用户登录,发布话题,删除话题,收藏话题,回复话题的UI自动化。修改完成的脚本上传到GitHub代码库。
总结: 通过这次沙龙,大家在一起协调的也非常好,大家也一起增长了测试经验,同时,也认识了新的朋友。更重要是,我们的自动化代码将会贡献给Cnode社区,造福大家。这里要感谢Cnode社区,提供一个这样的平台,并且鼓励我们。 同时感谢CukeTest,提供工具能让我们很快的协助开发。也感谢猫叔,给我们提供场地,让我们能够坐在一起交流。
赞👍
👍
很赞。
不知道楼主试过cypress来测试没?我以前使用nightwatch,后来遇见了cypress一下子就切换到它了。
有用过这个工具:https://www.katalon.com/ 可以直接录制脚本的,公司项目测试一般会配备QA,这个工具让QA来学习了解门槛低一些
社区鼓励这样的行为,你们非常棒!
@1340641314 谢谢。现在用的是大家常用的selenium,你说的这个我也去看看。
来自酷炫的 CNodeMD
如果大家想对UI自动化测试有更深入的学习,我之前在腾讯课堂放的也有免费公开课 可以看看 https://ke.qq.com/course/281565 大家一起学习 :)
@imzengyang 哈哈,我最近也一直在做前端自动化测试相关的,看到了楼主的帖子被炸出来了。
学习了
来自酷炫的 CNodeMD
不错了
赞👍