发明内容
根据现有技术中存在的上述问题,现提供一种自动化测试系统及方法的技术方案,旨在代替工程师对每个测试项目进行操作,提高网页页面的控件测试的效率,并且降低人工测试过程中容易出现的误操作导致的测试问题,减少测试时间,降低工程师的时间成本。
上述技术方案具体包括:
一种自动化测试系统,适用于对网页及网页中的页面控件进行自动化测试;其中,包括:
用例管理单元,提供给使用者预设多个测试用例并保存,并且提供给使用者对被保存的所述测试用例进行编辑的功能;
对象管理单元,提供给使用者预设多个测试对象并保存,并且提供给使用者对被保存的所述测试对象进行编辑的功能,所述测试对象包括所述网页以及所述网页中的所述页面控件,每个所述测试对象对应于至少一个所述测试用例;
代码管理单元,提供给使用者预设多个测试代码并保存,并且提供给使用者对被保存的所述测试代码进行编辑的功能,所述测试代码与所述测试用例一一对应;
信息读取单元,分别连接所述用例管理单元、所述对象管理单元和所述代码管理单元,用于分别读取并输出所述测试用例以及对应所述测试用例的所述测试代码,以及读取所述测试对象;
执行单元,连接所述信息读取单元,用于根据被读取到的所述测试用例以及对应的所述测试代码,对被读取到的所述测试对象进行自动化测试,随后输出测试结果;
展示单元,连接所述执行单元,用于向使用者展示所述执行单元输出的所述测试结果。
优选的,该自动化测试系统,其中,于所述用例管理单元中保存预设的每个所述测试用例的用例信息;
所述用例信息包括:所述测试用例的用例名称,和/或所述测试用例的用例代码,和/或所述测试用例的用例描述,和/或所述测试用例的用例的执行文件,和/或所述测试用例的预期结果。
优选的,该自动化测试系统,其中,于所述对象管理单元中保存预设的每个所述测试对象的对象信息;
所述对象信息包括:所述网页的页面信息、所述页面控件的控件元素信息以及测试所述网页所需的测试数据信息;
一个所述页面控件仅对应于一个所述网页,一个网页对应于至少一个所述页面控件。
优选的,该自动化测试系统,其中,所述对象管理单元中包括:
校验模块,用于对每个所述测试对象设置一检查点,以在自动化测试前对所述网页以及所述网页中的所述页面控件进行校验。
优选的,该自动化测试系统,其中,所述代码管理单元包括:
底层管理模块,用于管理并保存系统底层的公用代码;
业务管理模块,用于管理并保存每个所述测试代码。
优选的,该自动化测试系统,其中,所述信息读取单元在输出所述测试代码的同时,输出执行所述测试代码的代码脚本的执行指令;所述执行单元包括:
接收模块,用于接收所述信息读取单元输出的所述测试用例、所述测试代码、所述测试对象和所述执行指令;
执行模块,连接所述接收模块,用于根据所述执行指令执行对应于所述测试用例的所述测试代码,以对所述测试对象进行自动化测试;
结果模块,连接所述执行模块,用于获取所述执行模块对所述测试对象进行自动化测试后得到的执行结果;
对比模块,连接所述结果模块,用于将所述执行结果与所述测试用例的所述预期结果进行对比,并输出经过对比后形成的所述测试结果。
优选的,该自动化测试系统,其中,所述测试结果中包括:所述测试用例的用例名称,和/或所述测试用例的预期结果,和/或所述测试用例被执行的执行时间,和/或所述执行结果,和/或所述测试用例的执行过程中的错误信息。
一种自动化测试方法,适用于对网页及网页中的页面控件进行自动化测试;其中,预设多个测试用例、多个测试对象以及分别与每个所述测试用例对应的测试代码,所述测试对象包括所述网页以及所述网页中的所述页面控件,每个所述测试对象分别对应于至少一个所述测试用例,还包括:
步骤S1,选择一个需要进行测试的所述测试用例;
步骤S2,根据所述测试用例获取所述测试对象,以及与所述测试用例对应的所述测试代码;
步骤S3,根据所述测试代码的脚本执行指令执行所述测试代码,以采用被选择的所述测试用例对所述测试对象进行自动化测试;
步骤S4,将进行自动化测试后生成的执行结果与所述测试用例中包括的预期结果进行对比,以形成一测试结果;
步骤S5,向使用者展示所述测试结果。
上述技术方案的有益效果是:
1)提供一种自动化测试系统,能够代替工程师对每个测试项目进行操作,提高网页页面的控件测试的效率,并且降低人工测试过程中容易出现的误操作导致的测试问题,减少测试时间,降低工程师的时间成本;
2)提供一种自动化测试方法,能够支持上述自动化测试系统正常运行。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。
本发明的较佳的实施例中,基于现有技术中存在的上述问题,现提供一种自动化测试系统,该系统适用于对网页以及网页中的页面控件进行自动化测试。
上述自动化测试系统具体如图1所示,包括:
用例管理单元1,提供给使用者预设多个测试用例并保存,并且提供给使用者对被保存的测试用例进行编辑的功能;
对象管理单元2,提供给使用者预设多个测试对象并保存,并且提供给使用者对被保存的测试对象进行编辑的功能,测试对象包括网页以及网页中的页面控件,每个测试对象对应于至少一个测试用例;
代码管理单元3,提供给使用者预设多个测试代码并保存,并且提供给使用者对被保存的测试代码进行编辑的功能,测试代码与测试用例一一对应;
信息读取单元4,分别连接用例管理单元1、对象管理单元2和代码管理单元3,用于分别读取并输出测试用例以及对应测试用例的测试代码,以及读取测试对象;
执行单元5,连接信息读取单元4,用于根据被读取到的测试用例以及对应的测试代码,对被读取到的测试对象进行自动化测试,随后输出测试结果;
展示单元6,连接执行单元5,用于向使用者展示执行单元5输出的测试结果。
具体地,上述实施例中,上述用例管理单元1供使用者预设多个测试用例。所谓测试用例,是指针对不同的测试对象(下文中会描述)进行的测试项目。例如一个测试用例可以为访问一个网页并进行登录的登录控件测试,即测试在一个登录页面上输入用户名和密码并通过登录控件进行登录的整个登录过程。另一个测试用例也可以为对查询页面上的查询过程进行测试的测试项目,即测试在一个查询页面上输入查询关键字并通过查询控件进行查询的整个查询过程。本发明的其他实施例中,上述测试用例可以包括对网页以及页面控件进行的其他任何能够想象得到的测试项目,在此不再赘述。
上述实施例中,在上述用例管理单元1中对测试用例进行“编辑”,是指对测试用例进行新增、修改、删除等编辑操作,并将经过编辑的测试用例进行保存。
上述实施例中,上述对象管理单元2提供给使用者对测试对象进行编辑的功能。所谓测试对象,是指测试过程中所针对的网页以及网页页面中的页面控件,换言之,本发明中所述的自动化测试系统实际针对于网页以及网页页面中的页面控件来进行测试的。进一步地,一个实施例中,一个测试对象可以为一个网页,以及该网页中包括的所有控件。在另一个实施例中,一个测试对象可以为一个网页,以及该网页中包括的一部分控件。上述测试对象的区分可以由上文中所述的测试用例确定,以及由使用者预设和编辑。
上述实施例中,对测试对象进行编辑的功能同样包括添加、修改以及删除测试对象的操作。
上述实施例中,上述代码管理单元3提供给使用者对测试代码进行编辑的功能。具体地,该代码管理单元3可以供使用者对单元中保存的所有测试代码进行新增、修改和删除等操作。上述实施例中,测试代码和测试用例是一一对应的,即测试代码是测试用例在代码层面上的描述。
上述实施例中,上述信息读取单元4分别用于读取上述用例管理单元1中保存的一个测试用例(可以由使用者选择来读取哪一个测试用例),并且根据读取的测试用例读取对应的测试代码,以及读取对应需要被测试的测试对象,也即上述信息读取单元4分别读取测试用例、测试代码以及测试对象,并且输出上述被读取到的内容。
上述实施例中,上述执行单元5于信息读取单元4连接,并用于接收上述信息读取单元4输出的测试用例、测试代码和测试对象,并且执行对应于测试用例的测试代码,以根据该测试用例对测试对象进行自动化测试,随后输出测试结果。
上述实施例中,上述展示单元6用于接收上述执行单元5输出的测试结果,并将该测试结果展示给使用者查看,以便于使用者查看自动化测试的测试进展。
本发明的较佳的实施例中,于用例管理单元1中保存预设的每个测试用例的用例信息;
则每个测试用例的用例信息分别包括下文中所述的一个或几个:
测试用例的用例名称,测试用例的用例代码,测试用例的用例描述,测试用例的用例的执行文件,以及测试用例的预期结果。
上述实施例中,所谓用例代码,即上文中所述的测试代码,换言之,在上述用例管理单元1中同样保存有测试用例对应的用例代码的代码相关信息。
上述实施例中,所谓预期结果,是指使用者预设的该测试用例正常运行时能够预期到的正常结果,也就是该测试用例被测试的标准结果。例如,当测试用例为登录页面测试时,预期结果应当是:采用正确的用户名和密码登录可以验证通过,采用错误的用户名和密码登录无法验证通过。同样地,当测试用例为查询页面测试时,预期结果应当是:采用查询关键字进行查询应当跳出相对应的查询结果。
上述实施例中,所谓执行文件,可以为上述测试用例的用例代码的执行脚本。
本发明的较佳的实施例中,于对象管理单元中保存预设的每个测试对象的对象信息;
对象信息包括:网页的页面信息、页面控件的控件元素信息以及测试网页所需的测试数据信息;
一个页面控件仅对应于一个网页,一个网页对应于至少一个页面控件。
具体地,本发明的较佳的实施例中,上述页面信息是指网页的页面上相应的信息,例如网页名称、网页功能、网页地址以及网页布局等。上述控件元素信息是指网页上每个控件的相关信息,例如控件在网页上设置的位置、控件的排列序号信息以及控件的名称和功能等。上述测试数据信息可以包括测试中的一些参数,例如测试的重复次数以及两次相邻测试之间的间隔时间等。
上述网页中可以包括多个页面控件,例如对于登录网页来说,其中可以包括供使用者输入用户名和密码的文本框控件以及登录按钮控件等。对于查询网页来说,其中可以包括供使用者输入查询关键字的文本框控件、查询按钮控件以及查询结果显示的文本框控件等。
相应地,上述每个页面控件分别对应于且仅对应于一个网页。例如对于登录按钮控件而言,其仅存在于登录网页中。
本发明的较佳的实施例中,如图2中所示,上述对象管理单元2中包括:
校验模块21,用于对每个测试对象设置一检查点,以在自动化测试前对网页以及网页中的页面控件进行校验。
具体地,本发明的较佳的实施例中,上述校验模块21在每个测试对象上设置的检查点用于校验该测试对象是否加载正确,从而保证自动化测试能够顺利进行。
本发明的较佳的实施例中,如图3中所示,上述代码管理单元3中包括:
底层管理模块31,用于管理并保存系统底层的公用代码;
业务管理模块32,用于管理并保存每个测试代码。
具体地,本发明的较佳的实施例中,每个测试代码都包括公用代码部分和私有代码部分,即存在一部分公用代码可供不同的测试代码使用,每个测试代码还包括其私有的部分。
因此,上述底层管理模块31用于管理并保存系统底层的公用代码,具体为管理并保存对一些API接口进行封装的代码,以提供给上层逻辑层更方便的代码调用。
上述业务管理模块32用于管理并保存每个测试代码,即用于管理并保存每个测试代码的私有部分。因此,上述业务管理模块32和测试代码是一一对应的。有多少个测试代码,就有多少个业务管理模块32。则系统在读取测试用例时就可以采用对应的业务管理模块32调用对应的测试代码并执行。
本发明的较佳的实施例中,信息读取单元在输出测试代码的同时,输出执行测试代码的代码脚本的执行指令。
则如图4中所示,上述执行单元5中具体包括:
接收模块51,用于接收信息读取单元4输出的测试用例、测试代码、测试对象和执行指令;
执行模块52,连接接收模块51,用于根据执行指令执行对应于测试用例的测试代码,以对测试对象进行自动化测试;
结果模块53,连接执行模块52,用于获取执行模块52对测试对象进行自动化测试后得到的执行结果;
对比模块54,连接结果模块53,用于将执行结果与测试用例的预期结果进行对比,并输出经过对比后形成的测试结果。
具体地,本发明的较佳的实施例中,上述执行模块52根据执行指令可以执行对应的测试代码的代码脚本,并根据执行内容反馈给结果模块53相应的执行结果。该执行结果为针对测试对象执行测试用例对应的测试代码后得到的直接结果。例如对于登录网页的登录测试而言,执行结果为输入正确/错误的用户名密码得到的登录成功/失败的结果。
则上述对比模块54针对上述执行结果,将其与该测试用例对应的预期结果进行对比,并根据对比形成相应的测试结果并输出。
例如,对于登录测试而言,预期结果可以为:输入用户名111以及密码1111,显示登录成功。而执行结果若为:输入用户名111以及密码1111,显示登录失败,则对比后形成的测试结果就可以表示此次测试失败。又若执行结果同样为:输入用户名111以及密码1111,显示登录成功,则对比后形成的测试结果就可以表示此次测试成功。
又例如,对于查询测试而言,预期结果可以为:输入查询关键字111,查询并显示得到10条结果参数。而执行结果若为:输入查询关键字111查询不到任何结果参数,或者查询到20条结果参数,则对比后形成的测试结果就可以表示此次测试失败。又若执行结果同样为:输入查询关键字111,查询并显示得到10条结果参数,则对比后形成的测试结果就可以表示此次测试成功。
本发明的较佳的实施例中,最终上述展示单元6向使用者展示的测试结果中可以包括下文中所述的一种或几种:
测试用例的用例名称,测试用例的预期结果,测试用例被执行的执行时间,执行结果,以及测试用例的执行过程中的错误信息。
则上述测试结果能够比较具体地向使用者展示整个自动化测试过程中发生的内容。
本发明的较佳的实施例中,基于上文中所述的自动化测试系统,现提供一种自动化测试方法,该方法同样适用于对网页及网页中的页面控件进行自动化测试。在该方法中,首先预设多个测试用例、多个测试对象以及分别与每个测试用例对应的测试代码,测试对象包括网页以及网页中的页面控件,每个测试对象分别对应于至少一个测试用例。
则该方法具体如图5中所示,包括:
步骤S1,选择一个需要进行测试的测试用例;
步骤S2,根据测试用例获取测试对象,以及与测试用例对应的测试代码;
步骤S3,根据测试代码的脚本执行指令执行测试代码,以采用被选择的测试用例对测试对象进行自动化测试;
步骤S4,将进行自动化测试后生成的执行结果与测试用例中包括的预期结果进行对比,以形成一测试结果;
步骤S5,向使用者展示测试结果。
以上所述仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本发明说明书及图示内容所作出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。