本发明涉及软件测试,尤其是涉及前端项目自动化测试方法、前端项目自动化测试装置、以及电子设备和存储介质。
背景技术:
1、当应用软件开发完成后,为了确保一个前端项目能够在尽可能不出现漏洞的情况下上线,需要在开发环境、测试环境分别对程序进行人工测试,在测试完成后,才能正式上线到生产环境。但是,一旦项目开发人员离职,因为后续接手项目的人员不了解该项目的前后逻辑关系,若稍微修改一处的代码,便有可能造成其他的程序逻辑错误。并且,该前端项目发布到测试环境,测试人员一般只会测试当前修改或新增的模块,不能确保其他模块的逻辑不出错。该前端项目再发布到生产环境,那些之前是运行良好的程序,会因为后续的改动造成了新的bug,此时已经发布到生产环境,等用户发现再反馈给开发人员,开发人员根据用户反馈再进行重新调整和测试,因而大大增加了开发人员和测试人员的工作量,并且仅调整故障模块,设备上的终端项目仍然可能会出现新的逻辑故障。
2、前端项目是指构建和开发用户界面及用户体验的项目,也称为“客户端项目”。这些项目通常使用前端技术,例如html、css和javascript等,来创建和设计网站或web(worldwide web,万维网)应用程序的外观和交互功能。目前,前端项目的测试方式主要有两种:单元测试和e2e端对端测试。单元测试从开发人员的角度出发,开发人员以最小的功能逻辑单位来编写测试代码,然后快速定位漏洞,单元测试主要采用的技术有mocha、karma等。e2e端对端测试主要从用户的角度出发,以登录、添加购物车等用户行为的方式编写测试代码,e2e端对端测试主要采用的技术有seleninum、nightwatchjs、cypress等。
3、上述两种测试方式需要开发人员写两套程序、甚至是三套程序,分别是:实现功能的程序、单元测试程序、e2e端对端测试程序。一方面,bug、需求变更是极有可能发生的,需要开发人员重新编写调试程序,加大了开发人员的工作量。另一方面,编写单元测试程序、e2e端对端测试程序有一定的技术门槛,需要有扎实的测试技术以及书写测试程序的经验的开发人员进行编写。因此单元测试、e2e端对端测试只有在极少数的企业和开源项目中会用到,并不能适用于大多数的实际项目。
技术实现思路
1、本发明旨在至少解决现有技术中存在的技术问题之一。为此,本发明的一个目的在于提出一种前端项目自动化测试方法。该前端项目自动化测试方法能够减少开发人员与测试人员的工作量,极大地提高测试效率,并且适用范围广。
2、本发明的第二个目的在于提出一种前端项目自动化测试装置。
3、本发明的第三个目的在于提出一种电子设备。
4、本发明的第四个目的在于提出一种计算机可读存储介质。
5、为了达到上述目的,本发明第一方面实施例的前端项目自动化测试方法包括:获取根据目标前端项目的人工测试行为生成的测试用例;获取所述测试用例中的元素属性信息;根据所述元素属性信息确定元素类型;根据所述元素类型获得标记元素;以及根据所述标记元素自动对所述目标前端项目的页面进行操作以实现自动测试。
6、根据本发明实施例的前端项目自动化测试方法,直接调用该目标前端项目基于人工测试行为生成的测试用例,并且利用测试用例中的标记元素可以自动对目标前端项目的页面进行操作以实现自动测试,能够实现在短时间内完成大量测试,极大地提高测试效率,减少开发人员与测试人员的工作量,节约测试时间和测试成本,并且该方法对于测试程序的技术门槛低,可以适用于更多的实际项目,适用范围广。
7、在一些实施例中,获取根据目标前端项目的人工测试行为生成的测试用例,包括:检测对于所述目标前端项目页面的人工测试行为;捕捉所述目标前端项目页面中显示内容的变化;根据所述页面显示内容的变化识别测试用例元素,并标记所述测试用例元素以生成标记元素;在人工测试完成后,根据所有标记元素生成所述目标前端项目的测试用例并保存所述测试用例,从而实现通过自动化的方式生成测试用例,减少测试人员的工作量,提高测试效率和测试精度。
8、在一些实施例中,所述标记元素包括用例输入、事件触发和人工测试结果,根据所述页面显示内容的变化识别测试用例元素,并标记所述测试用例元素以生成标记元素,包括:若所述页面显示内容中的输入项输入内容,则标记所述输入项为所述用例输入;若所述页面显示内容中的触发项元素被触发,则标记所述触发项元素为所述事件触发;以及获取所述页面显示内容中变化的所有元素并标记为人工测试结果。
9、在一些实施例中,所述根据所述标记元素自动对所述目标前端项目的页面进行操作以实现自动测试,包括:根据所述用例输入自动填充所述目标前端项目中页面的输入项元素的输入值。
10、在一些实施例中,所述根据所述标记元素自动对所述目标前端项目的页面进行操作以实现自动测试,还包括:确定所述测试用例中所述事件触发的位置信息;根据所述位置信息触发所述目标前端项目中页面中对应位置的触发项元素。
11、在一些实施例中,所述根据所述标记元素自动对所述目标前端项目的页面进行操作以实现自动测试,还包括:响应于所述触发项元素的触发指令,获取所述目标前端项目的页面中变化的所有元素并生成自动测试结果;将所述自动测试结果与所述人工测试结果进行比较;所述自动测试结果与所述人工测试结果不一致,则测试失败并进行测试报错提示。
12、在一些实施例中,所述前端项目自动化测试方法还包括:获取更新信息,所述更新信息为对于所述目标前端项目的程序错误和/或需求变更重新进行人工测试而生成的信息;根据所述更新信息更新所述测试用例,从而避免了测试人员仅仅因为某一处程序的错误和/或需求变更,就测试该前端项目的所有细节,极大地减少了测试人员的工作量。
13、为了达到上述目的,本发明第二方面实施例的前端项目自动化测试装置包括:测试用例获取模块,用于获取根据目标前端项目的人工测试行为生成的测试用例;标记元素获取模块,用于获取所述测试用例中的标记元素;测试模块,用于根据所述标记元素自动对所述目标前端项目进行测试。
14、根据本发明实施例的前端项目自动化测试装置,通过测试用例获取模块基于该目标前端项目的人工测试行为生成的测试用例,测试模块通过读取测试用例中的标记元素,自动对目标前端项目进行测试,可以在短时间内完成大量测试,极大地提高测试效率,减少开发人员与测试人员的工作量,节约测试时间和测试成本,并且该装置对于测试程序的技术门槛低,可以适用于更多的实际项目,适用范围广。
15、为了达到上述目的,本发明第三方面实施例的电子设备包括:至少一个处理器;与所述至少一个处理器通信连接的存储器;所述存储器中存储有可被所述至少一个处理器执行的计算机程序,所述至少一个处理器执行所述计算机程序时实现上面实施例所述的前端项目自动化测试方法。
16、根据本发明实施例的电子设备,处理器与存储器通信连接,处理器通过执行存储器中的计算机程序时实现上面实施例所述的前端项目自动化测试方法,可以在短时间内完成大量测试,极大地提高测试效率,减少开发人员与测试人员的工作量,节约测试时间和测试成本,并且对于测试程序编写技术的要求低,可以适用于更多项目,适用范围广。
17、为了达到上述目的,本发明第四方面实施例的计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上面实施例所述的前端项目自动化测试方法。
18、本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
1.一种前端项目自动化测试方法,其特征在于,包括:
2.根据权利要求1所述的前端项目自动化测试方法,其特征在于,获取根据目标前端项目的人工测试行为生成的测试用例,包括:
3.根据权利要求2所述的前端项目自动化测试方法,其特征在于,所述标记元素包括用例输入、事件触发和人工测试结果,根据所述页面显示内容的变化识别测试用例元素,并标记所述测试用例元素以生成标记元素,包括:
4.根据权利要求3所述的前端项目自动化测试方法,其特征在于,所述根据所述标记元素自动对所述目标前端项目的页面进行操作以实现自动测试,包括:
5.根据权利要求4所述的前端项目自动化测试方法,其特征在于,所述根据所述标记元素自动对所述目标前端项目的页面进行操作以实现自动测试,还包括:
6.根据权利要求5所述的前端项目自动化测试方法,其特征在于,所述根据所述标记元素自动对所述目标前端项目的页面进行操作以实现自动测试,还包括:
7.根据权利要求1-6任一项所述的前端项目自动化测试方法,其特征在于,所述前端项目自动化测试方法还包括:
8.一种前端项目自动化测试装置,其特征在于,包括:
9.一种电子设备,其特征在于,包括:
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7任一项所述的前端项目自动化测试方法。