本发明属于软件测试领域,尤其涉及一种自动测试方法、装置及系统。
背景技术:
1、软件自动化测试不仅能够提高测试效率,并且能够减少开发人员的工作强度,降低人力成本。ui recorder是一款自动化测试工具,主要针对web、桌面、移动端的ui操作进行测试,可以录制用户在界面上的所有操作,生成自动化测试脚本,提高测试效率和精确度。
2、目前的ui recorder对需要复杂造数的场景没法满足,并且自动化测试脚本的冗余代码多,不方便问题的排查和查看,同时针对版本经常变动的场景,自动化测试脚本改动范围大,效率低,自动化测试脚本的维护成本高。
技术实现思路
1、鉴于以上现有技术的不足,发明的目的在于提供一种自动测试方法、装置及系统,提高了测试用数据造数的便捷性,自动化测试所用代码精简,问题易排查,并且针对版本经常改动或者改动大的场景,自动化测试所用的代码改动范围小、降低了代码的维护成本,提高了测试效率。
2、本发明的第一方面,提出了一种自动测试方法,包括:
3、s1,确定与ui测试任务相对应的、预先定义的目标ui静态页面基类,利用所述目标ui静态页面基类创建页面实例,并利用查询到的所述目标ui静态页面基类中的各目标页面元素的路径,初始化页面元素,得到测试页面;其中,一个页面元素对应于至少一个ui静态页面基类;
4、s2,调用预先定义的、与所述ui测试任务相匹配的造数方法,生成测试用数据;利用浏览器控制接口控制目标浏览器,基于所述测试用数据在所述测试页面上执行页面操作,以及,利用自动化测试脚本录制所述ui测试任务的执行过程;
5、s3,利用所述浏览器控制接口获取到所述目标浏览器执行所述ui测试任务所返回的返回数据,并获取所述自动化测试脚本所录制的录制数据;
6、s4,将所述返回数据和录制数据与所述ui测试任务的标准执行结果进行比对,得到测试比对信息,并利用所述自动化测试脚本的测试报告解析生成功能对所述测试比对信息进行解析,利用解析结果生成自定义测试报告。
7、进一步地,在执行步骤s1之前,还包括:
8、定义各ui静态页面基类中的页面元素的路径,将各个页面元素的路径存储在公共模块,并根据各个页面元素的路径建立路径字典;
9、查询所述目标ui静态页面基类中的各目标页面元素的路径,包括:
10、利用预先定义好的页面元素的路径字典,确定所述目标ui静态页面基类中的各目标页面元素的路径。
11、进一步地,在执行步骤s1之前,还包括:
12、定义各ui静态页面基类,其中,所述ui静态页面基类的定义信息中包括页面元素结构的信息、页面类定义格式的信息、存储格式的信息以及调用格式的信息。
13、进一步地,在执行步骤s1之前,还包括:
14、利用浏览器控制接口定义通用的多种造数方法;其中,所述造数方法用于生成测试过程中所需要使用的测试用数据。
15、进一步地,在执行步骤s1之前,还包括:
16、利用浏览器控制接口定义各测试页面对应的页面数据提取方式、接口数据获取方式、页面操作的方式。
17、进一步地,所述浏览器控制接口包括puppeteer;所述目标浏览器包括headlesschrome;所述自动化测试脚本包括ui recorder的脚本。
18、进一步地,所述造数方法包括以下至少一种:
19、订购流程对应的造数方法、物流流程对应的造数方法、页面操作流程对应的造数方法。
20、本发明的第二方面,提出了一种自动测试装置,用于实现上述任一项所述的自动测试方法,所述装置包括:
21、初始化实例模块,用于确定与ui测试任务相对应的、预先定义的目标ui静态页面基类,利用所述目标ui静态页面基类创建页面实例,并利用查询到的所述目标ui静态页面基类中的各目标页面元素的路径,初始化页面元素,得到测试页面;其中,一个页面元素对应于至少一个ui静态页面基类;
22、测试模块,用于调用预先定义的、与所述ui测试任务相匹配的造数方法,生成测试用数据;利用浏览器控制接口控制目标浏览器,基于所述测试用数据在所述测试页面上执行页面操作,以及,利用自动化测试脚本录制所述ui测试任务的执行过程;
23、数据获取模块,用于利用所述浏览器控制接口获取到所述目标浏览器执行所述ui测试任务所返回的返回数据,并获取所述自动化测试脚本所录制的录制数据;
24、报告生成模块,用于将所述返回数据和录制数据与所述ui测试任务的标准执行结果进行比对,得到测试比对信息,并利用所述自动化测试脚本的测试报告解析生成功能对所述测试比对信息进行解析,利用解析结果生成自定义测试报告。
25、本发明的第三方面,提出了一种自动测试系统,包括:上述任一项所述的目标浏览器、上述所述的浏览器控制接口、上述所述的自动化测试脚本的自动化测试工具。
26、本发明有益效果如下:
27、本发明所述的方法、装置及系统,在执行ui测试任务时,首先利用定义好的ui静态页面基类以及页面元素的路径,初始化测试页面;之后利用定义好的造数方法生成测试用数据;之后,浏览器控制接口控制目标浏览器,基于测试用数据在所述测试页面上执行页面操作,利用浏览器控制接口获取返回数;最后,将返回数据和录制数据与ui测试任务的标准执行结果进行比对,利用自动化测试脚本的测试报告解析生成功能对比对信息进行解析,并利用解析结果生成自定义测试报告。本发明可以达到统一页面元素路径的定义入口,一键初始化测试页面,构造依赖数据(即测试用数据),执行页面操作后获取录制数据,并且通过接口获取页面测试所返回的返回数据,并与标准执行结果进行比对校验,降低了ui自动化测试的维护和编写的成本,把对页面修改对测试的影响范围缩小到最小,从而达到减少测试回归成本和提高编写自动化测试用例的效率。
28、另外,路径字典中的页面元素应用于至少一个ui静态页面基类,即本发明通过ui静态页面基类以及路径字典的配合能够精确定位到每个页面元素,方便所有复用该页面元素的ui自动化测试用例重复调用,自动测试所用代码精简,问题易排查;相同页面元素可以共用相同的路径,在页面元素改动时,只需要改动路径或者改动一次页面元素的代码即可,将代码改动量降低到最低;并且由于相同页面元素可以共用相同的路径,在编写具体的ui自动化测试用例时,只需要通过路径字典的方式直接获取到具体某个页面某个页面元素的路径,减少编写成本和门槛,方便页面元素路径的管理和维护,减少页面元素路径的维护成本和降低使用的成本,提高了测试效率。另外,本发明利用预先定义的通用的造数方法来造数,提高了造数便捷性。另外,若ui页面有改动,直接修改对应的ui静态页面基类即可,不需要修改每个自动化测试用例对应的代码,降低了代码维护成本。
1.一种自动测试方法,其特征在于,包括:
2.根据权利要求1所述的自动测试方法方法,其特征在于,在执行步骤s1之前,还包括:
3.根据权利要求1所述的自动测试方法,其特征在于,在执行步骤s1之前,还包括:
4.根据权利要求1所述的自动测试方法,其特征在于,在执行步骤s1之前,还包括:
5.根据权利要求1所述的自动测试方法,其特征在于,在执行步骤s1之前,还包括:
6.根据权利要求1所述的自动测试方法,其特征在于,所述浏览器控制接口包括puppeteer;所述目标浏览器包括headless chrome。
7.根据权利要求1所述的自动测试方法,其特征在于,所述自动化测试脚本包括uirecorder的脚本。
8.根据权利要求1所述的自动测试方法,其特征在于,所述造数方法包括以下至少一种:
9.一种自动测试装置,其特征在于,用于实现权利要求1至8任一项所述的自动测试方法,所述装置包括:
10.一种自动测试系统,其特征在于,包括:权利要求1至8中任一项所述的目标浏览器、权利要求1至8中任一项所述的浏览器控制接口、包括权利要求1至8中任一项所述的自动化测试脚本的自动化测试工具。