CN104298595A - 自动化测试方法及测试系统 - Google Patents
自动化测试方法及测试系统 Download PDFInfo
- Publication number
- CN104298595A CN104298595A CN201410514243.7A CN201410514243A CN104298595A CN 104298595 A CN104298595 A CN 104298595A CN 201410514243 A CN201410514243 A CN 201410514243A CN 104298595 A CN104298595 A CN 104298595A
- Authority
- CN
- China
- Prior art keywords
- test
- code
- control
- test script
- script code
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Medical Treatment And Welfare Office Work (AREA)
Abstract
本发明提供了一种自动化测试方法及测试系统,包括:步骤1:定义控件属性与预置测试脚本代码之间的对应关系;步骤2:读入测试用例的包括控件属性的测试数据;步骤3:针对读入的控制属性,查找到对应的预置测试脚本代码;步骤4:根据预置测试脚本代码形成自动化测试脚本代码;步骤5:执行自动化测试脚本代码,自动化测试脚本代码用于模拟手动执行测试用例中各个控件类型的动作。本发明通过控件ID与被测系统映射表中的映射关系、控件类型与被测系统映射表中的映射关系、控件类型与代码映射表中的映射关系,实现了测试用例到自动化测试脚本的自动转化,提高代码重复利用率和测试效率、缩小了代码量,降低了资源消耗和维护复杂度。
Description
技术领域
本发明涉及自动化测试技术领域,特别涉及一种测试用例转化为自动化测试脚本的方法及系统。
背景技术
在自动化测试领域中,传统的自动化测试脚本的开发一般有两种方法。第一种方法是通过手工运行一次测试,同时使用自动化测试工具的录制功能,把所进行的操作记录下来,生成测试脚本。这种技术生成的脚本回放成功率比较低,后期维护也比较困难。第二种方法是编写测试框架,对测试需要的基础操作提供接口供调用,测试人员根据用例操作需求,手工编写调用接口的自动化测试脚本,这种方法对测试人员的代码水平要求很高。
目前自动化测试中,测试人员编写完用例以后,还需要脚本开发人员单独编写一条针对此用例的自动化测试脚本,然后使用自动化测试工具运行脚本进行测试。当测试用例变更后,还需要重新编写这条测试脚本,资源耗费比较大。测试用例和测试脚本之间的维护比较复杂。
因此有必要研究一种维护相对简的自动化测试技术方案。
发明内容
针对现有技术中的缺陷,本发明要解决的技术问题是:如何将测试用例自动地转化为自动化测试脚本,以减少自动化测试脚本的代码量、资源消耗及测试用例和测试脚本之间的维护。
为解决上述技术问题,本发明提供了一种只要被测产品中没有产生新的控件类型,就不需要修改自动化测试脚本的技术方案,在该技术方案中,测试用例中可以任意制定被测产品的流程,不会局限某个系统、某个产品的自动化测试方法。
根据本发明提供的一种自动化测试方法,包括如下步骤:
步骤1:定义控件属性与预置测试脚本代码之间的对应关系;
步骤2:读入测试用例的测试数据,其中,所述测试数据包括控件属性;
步骤3:针对读入的控制属性,查找到对应的预置测试脚本代码;
步骤4:根据预置测试脚本代码形成自动化测试脚本代码;
步骤5:执行自动化测试脚本代码,其中,自动化测试脚本代码用于模拟手动执行测试用例中各个控件类型的动作。
优选地,所述控件属性为控件多种属性的组合。
优选地,所述控件属性为:
-控件类型、控件ID两者的组合;或者
-控件名称、控件ID两者的组合。
优选地,将预置测试脚本代码添加到编写的自动化测试代码框架中,形成自动化测试脚本代码。
优选地,所述编写的自动化测试代码框架中设置有代码插入标记,在步骤4中,根据控件属性与预置测试脚本代码之间的对应关系,将预置测试脚本代码自动添加到所述代码插入标记处。
优选地,预置测试脚本代码以函数形式存在,自动化测试脚本代码中含有用于调用预置测试脚本代码的调用函数。
优选地,
在步骤5之前,根据控件ID查找到对应的被测模块,其中,所述被测模块是所述自动化测试方法所针对的被测系统的某个测试单元;
相应地,在步骤5中,自动化测试脚本代码用于模拟手动执行所述被测模块的控件类型的动作。
根据本发明提供的一种自动化测试系统,所述自动化测试系统用于执行上述的自动化测试方法。
与现有技术相比,本发明具有如下的有益效果:
本发明通过控件ID与被测系统映射表中的映射关系、控件类型与被测系统映射表中的映射关系、控件类型与代码映射表中的映射关系,实现了测试用例到自动化测试脚本的自动转化,提高代码重复利用率、缩小了代码量、提高了自动化测试的效率,降低了资源消耗和维护复杂度。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为实现自动化测试一个测试用例的流程。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进。这些都属于本发明的保护范围。
本发明的方法需要需求人员、产品开发人员和自动化测试脚本代码开发人员共同配合,产生控件ID与被测系统映射表、控件类型与代码映射表,例如表1和表2所示,其中,控件ID与被测系统映射表记录了控件名称、测试用例中控件ID、被测系统中的控件ID之间的映射关系,控件类型与代码映射表记录了控件类型、测试用例中控件类型、被测产品中控件类型、测试脚本中控件类型的映射关系。
表1 控件ID与被测系统映射表
表2 控件类型与代码映射表
本发明的方法和系统可以连接测试用例管理工具,读取测试用例,通过解析模块解析测试用例信息,生成脚本可读的信息,根据测试用例中的控件ID在控件ID与被测系统映射表中查找对应被测模块,确定被测模块;根据测试用例中的控件类型在控件类型与代码映射表中查找对应的测试脚本代码,执行自动化测试脚本,最终产生测试结果。
具体步骤如图1所示,包括:
步骤1:读取用户编写的测试用例,例如可以连接测试用例管理工具,从存储有用户编写测试用例的测试用例管理工具中读取,测试用例中的控件类型和操作命令、自动化测试脚本中的控件类型和操作命令、被测试系统中控件类型和操作命令三者一致,测试用例中的控件ID与被测系统的控件ID一致。
步骤2:解析测试用例信息,生成脚本可读的信息。
步骤3:根据测试用例中的控件ID在控件ID与被测系统映射表中查找对应被测模块。具体地,根据测试用例中的控件ID,在控件ID与被测系统映射表中,首先查找到对应的被测系统中的控件ID,然后根据该被测系统中的控件ID再查找到对应的被测模块,其中,所述被测模块是被测系统的某个测试单元,例如,一个文本框、一个多选框、一个单选框等。
步骤4:根据测试用例中的控件类型在控件类型与代码映射表中查找对应的自动化测试脚本代码。具体为,根据测试用例中的控件类型,在控件类型与代码映射表中,首先查找到对应的测试脚本中控件类型,然后根据该测试脚本中控件类型再查找到对应的自动化测试脚本代码。
步骤5:执行步骤4的控件类型对应的自动化测试脚本代码,该自动化测试脚本代码用于模拟手动执行通过步骤3查找到的被测模块的控件类型的动作。
步骤6:输出自动化测试脚本代码产生的实际结果。
步骤7:比较自动化测试脚本代码产生的实际结果与测试用例中的预期结果是否一致,如果一致说明测试通过;如果不一致说明测试不通,并且指出不通过的原因
使用本发明的方法,即使当测试用例变更后,测试人员只需按照关键字规范,手工修改一次测试用例即可。
下面对本发明的一个优选具体实施方式进行描述。在本具体实施方式中,包括以下步骤:
Step1:需求人员、产品开发人员和自动化测试脚本代码开发人员共同定义好被测产品中控件类型与控件的ID,产生相应的映射表,标准控件的使用标准定义。
Step2:产品开发人员和自动化测试脚本代码开发人员根据映射表为被测产品的每个控件设置控件类型、控件ID。
Step3:定义测试用例内容以及格式;测试用例内容包含:控件类型、控件ID等;测试用例的格式如:(系统模块名称,控件类型,控件ID,输入内容,操作命令,预期输出,时间输出,测试结果)。
Step4:执行自动化测试脚本代码,包括如下子步骤:
Step4.1:读取用户编写的测试用例,所述测试用例中的控件类型和操作命令、自动化测试脚本中控件类型和操作命令、被测试系统中控件类型和操作命令三者一致,测试用例中的控件ID与被测系统的控件ID一致。例如,可以首先连接存储有用户编写的测试用例的测试用例管理工具,然后从测试用例管理工具中读取测试用例。
Step4.2:解析测试用例信息,生成脚本可读的信息。
Step4.3:根据测试用例中的控件ID在控件ID与被测系统映射表中查找对应被测模块。
Step4.4:根据测试用例中的控件类型在控件类型与代码映射表中查找对应的测试脚本代码。
Step4.5:执行自动化测试脚本代码,这段自动化测试脚本代码是模拟手动执行测试用例中各种控件类型的动作。
Step4.6:输出自动化测试脚本代码产生的实际结果。
Step4.7:比较自动化测试脚本代码产生的实际结果与测试用例中的预期结果是否一致,如果一致说明测试通过;如果不一致说明测试不通,并且指出不通过的原因。
其中,Step4是自动化测试一个控件过程,在自动化测试脚本代码中,分别实现模拟手动执行每个控件类型的动作,并且使每一个控件类型的动作成为一个独立的模块,根据控件类型可以查找到对应的测试脚本代码。脚本代码可以重复利用,只要被测产品中没有产生新的控件类型,就不需要修改自动化测试脚本。测试用例中可以任意制定被测产品的流程,不会局限某个系统、某个产品。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质内容。
Claims (8)
1.一种自动化测试方法,其特征在于,包括如下步骤:
步骤1:定义控件属性与预置测试脚本代码之间的对应关系;
步骤2:读入测试用例的测试数据,其中,所述测试数据包括控件属性;
步骤3:针对读入的控制属性,查找到对应的预置测试脚本代码;
步骤4:根据预置测试脚本代码形成自动化测试脚本代码;
步骤5:执行自动化测试脚本代码,其中,自动化测试脚本代码用于模拟手动执行测试用例中各个控件类型的动作。
2.根据权利要求1所述的自动化测试方法,其特征在于,所述控件属性为控件多种属性的组合。
3.根据权利要求2所述的自动化测试方法,其特征在于,所述控件属性为:
-控件类型、控件ID两者的组合;或者
-控件名称、控件ID两者的组合。
4.根据权利要求1所述的自动化测试方法,其特征在于,将预置测试脚本代码添加到编写的自动化测试代码框架中,形成自动化测试脚本代码。
5.根据权利要求4所述的自动化测试方法,其特征在于,所述编写的自动化测试代码框架中设置有代码插入标记,在步骤4中,根据控件属性与预置测试脚本代码之间的对应关系,将预置测试脚本代码自动添加到所述代码插入标记处。
6.根据权利要求1所述的自动化测试方法,其特征在于,预置测试脚本代码以函数形式存在,自动化测试脚本代码中含有用于调用预置测试脚本代码的调用函数。
7.根据权利要求2所述的自动化测试方法,其特征在于,
在步骤5之前,根据控件ID查找到对应的被测模块,其中,所述被测模块是所述自动化测试方法所针对的被测系统的某个测试单元;
相应地,在步骤5中,自动化测试脚本代码用于模拟手动执行所述被测模块的控件类型的动作。
8.一种自动化测试系统,其特征在于,所述自动化测试系统用于执行权利要求1至7中任一项所述的自动化测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410514243.7A CN104298595A (zh) | 2014-09-29 | 2014-09-29 | 自动化测试方法及测试系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410514243.7A CN104298595A (zh) | 2014-09-29 | 2014-09-29 | 自动化测试方法及测试系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104298595A true CN104298595A (zh) | 2015-01-21 |
Family
ID=52318330
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410514243.7A Pending CN104298595A (zh) | 2014-09-29 | 2014-09-29 | 自动化测试方法及测试系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104298595A (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105912467A (zh) * | 2016-04-08 | 2016-08-31 | 腾讯科技(深圳)有限公司 | 一种性能测试方法及装置 |
CN106326121A (zh) * | 2016-08-22 | 2017-01-11 | 上海亿账通互联网科技有限公司 | 测试脚本的自动生成方法及终端 |
CN106649090A (zh) * | 2016-10-10 | 2017-05-10 | 上海瀚之友信息技术服务有限公司 | 一种自动化测试系统及方法 |
CN107391383A (zh) * | 2017-08-11 | 2017-11-24 | 上海巍擎信息技术有限责任公司 | 一种应用程序界面的测试方法和测试系统 |
CN107703773A (zh) * | 2017-07-27 | 2018-02-16 | 北京长城华冠汽车科技股份有限公司 | 一种基于硬件在环仿真系统的软件测试方法及装置 |
CN108255706A (zh) * | 2017-11-27 | 2018-07-06 | 平安科技(深圳)有限公司 | 自动化测试脚本的编辑方法、装置、终端设备及存储介质 |
CN108415826A (zh) * | 2018-01-12 | 2018-08-17 | 深圳壹账通智能科技有限公司 | 应用的测试方法、终端设备及计算机可读存储介质 |
CN109308254A (zh) * | 2017-07-28 | 2019-02-05 | 阿里巴巴集团控股有限公司 | 一种测试方法、装置及测试设备 |
CN109558319A (zh) * | 2018-11-27 | 2019-04-02 | 泰康保险集团股份有限公司 | Web页面控件的测试方法、设备和存储介质 |
CN109815127A (zh) * | 2018-12-21 | 2019-05-28 | 浙江数链科技有限公司 | 自动化脚本转换方法、装置、计算机设备和存储介质 |
CN109828905A (zh) * | 2018-12-15 | 2019-05-31 | 中国平安人寿保险股份有限公司 | 自动化测试方法、装置、计算机装置及存储介质 |
CN109885473A (zh) * | 2018-12-14 | 2019-06-14 | 平安万家医疗投资管理有限责任公司 | 自动化测试方法及装置、终端和计算机可读存储介质 |
CN110069404A (zh) * | 2019-03-27 | 2019-07-30 | 广东高云半导体科技股份有限公司 | 代码调试方法、装置、设备及介质 |
CN111897740A (zh) * | 2020-08-24 | 2020-11-06 | 北京字节跳动网络技术有限公司 | 用户界面的测试方法、装置、电子设备及计算机可读介质 |
CN112579456A (zh) * | 2020-12-24 | 2021-03-30 | 安徽航天信息科技有限公司 | 一种Web自动化测试方法及装置 |
CN112783769A (zh) * | 2021-01-19 | 2021-05-11 | 深圳市莫廷影像技术有限公司 | 一种自定义的自动化软件测试方法 |
CN114328218A (zh) * | 2021-12-28 | 2022-04-12 | 宁夏隆基宁光仪表股份有限公司 | 一种控制智能仪表测试程序自动执行的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060020429A1 (en) * | 1999-09-30 | 2006-01-26 | Ruven Brooks | Method and apparatus for configuring interfaces for automated systems |
CN101339534A (zh) * | 2008-06-17 | 2009-01-07 | 金蝶软件(中国)有限公司 | 一种软件测试的方法及装置 |
CN103942144A (zh) * | 2014-04-10 | 2014-07-23 | 国家电网公司 | 一种利用参数关系图形化映射的测试方法 |
-
2014
- 2014-09-29 CN CN201410514243.7A patent/CN104298595A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060020429A1 (en) * | 1999-09-30 | 2006-01-26 | Ruven Brooks | Method and apparatus for configuring interfaces for automated systems |
CN101339534A (zh) * | 2008-06-17 | 2009-01-07 | 金蝶软件(中国)有限公司 | 一种软件测试的方法及装置 |
CN103942144A (zh) * | 2014-04-10 | 2014-07-23 | 国家电网公司 | 一种利用参数关系图形化映射的测试方法 |
Non-Patent Citations (1)
Title |
---|
武剑洁等: "《软件测试技术基础》", 31 October 2008, 华中科技大学出版社 * |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105912467A (zh) * | 2016-04-08 | 2016-08-31 | 腾讯科技(深圳)有限公司 | 一种性能测试方法及装置 |
CN106326121A (zh) * | 2016-08-22 | 2017-01-11 | 上海亿账通互联网科技有限公司 | 测试脚本的自动生成方法及终端 |
CN106649090A (zh) * | 2016-10-10 | 2017-05-10 | 上海瀚之友信息技术服务有限公司 | 一种自动化测试系统及方法 |
CN107703773A (zh) * | 2017-07-27 | 2018-02-16 | 北京长城华冠汽车科技股份有限公司 | 一种基于硬件在环仿真系统的软件测试方法及装置 |
CN109308254A (zh) * | 2017-07-28 | 2019-02-05 | 阿里巴巴集团控股有限公司 | 一种测试方法、装置及测试设备 |
CN109308254B (zh) * | 2017-07-28 | 2022-06-03 | 阿里巴巴集团控股有限公司 | 一种测试方法、装置及测试设备 |
CN107391383A (zh) * | 2017-08-11 | 2017-11-24 | 上海巍擎信息技术有限责任公司 | 一种应用程序界面的测试方法和测试系统 |
CN107391383B (zh) * | 2017-08-11 | 2021-01-12 | 上海巍擎信息技术有限责任公司 | 一种应用程序界面的测试方法和测试系统 |
CN108255706A (zh) * | 2017-11-27 | 2018-07-06 | 平安科技(深圳)有限公司 | 自动化测试脚本的编辑方法、装置、终端设备及存储介质 |
CN108415826A (zh) * | 2018-01-12 | 2018-08-17 | 深圳壹账通智能科技有限公司 | 应用的测试方法、终端设备及计算机可读存储介质 |
CN108415826B (zh) * | 2018-01-12 | 2021-10-29 | 深圳壹账通智能科技有限公司 | 应用的测试方法、终端设备及计算机可读存储介质 |
CN109558319A (zh) * | 2018-11-27 | 2019-04-02 | 泰康保险集团股份有限公司 | Web页面控件的测试方法、设备和存储介质 |
CN109558319B (zh) * | 2018-11-27 | 2022-03-01 | 泰康保险集团股份有限公司 | Web页面控件的测试方法、设备和存储介质 |
CN109885473A (zh) * | 2018-12-14 | 2019-06-14 | 平安万家医疗投资管理有限责任公司 | 自动化测试方法及装置、终端和计算机可读存储介质 |
CN109828905A (zh) * | 2018-12-15 | 2019-05-31 | 中国平安人寿保险股份有限公司 | 自动化测试方法、装置、计算机装置及存储介质 |
CN109828905B (zh) * | 2018-12-15 | 2023-08-22 | 中国平安人寿保险股份有限公司 | 自动化测试方法、装置、计算机装置及存储介质 |
CN109815127A (zh) * | 2018-12-21 | 2019-05-28 | 浙江数链科技有限公司 | 自动化脚本转换方法、装置、计算机设备和存储介质 |
CN110069404A (zh) * | 2019-03-27 | 2019-07-30 | 广东高云半导体科技股份有限公司 | 代码调试方法、装置、设备及介质 |
CN111897740A (zh) * | 2020-08-24 | 2020-11-06 | 北京字节跳动网络技术有限公司 | 用户界面的测试方法、装置、电子设备及计算机可读介质 |
CN112579456A (zh) * | 2020-12-24 | 2021-03-30 | 安徽航天信息科技有限公司 | 一种Web自动化测试方法及装置 |
CN112579456B (zh) * | 2020-12-24 | 2024-04-09 | 安徽航天信息科技有限公司 | 一种Web自动化测试方法及装置 |
CN112783769A (zh) * | 2021-01-19 | 2021-05-11 | 深圳市莫廷影像技术有限公司 | 一种自定义的自动化软件测试方法 |
CN114328218A (zh) * | 2021-12-28 | 2022-04-12 | 宁夏隆基宁光仪表股份有限公司 | 一种控制智能仪表测试程序自动执行的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104298595A (zh) | 自动化测试方法及测试系统 | |
CN110032369A (zh) | 一种代码自动生成方法、装置及介质 | |
CN105912473B (zh) | 基于bdd的移动app自动测试平台和测试方法 | |
CN102831052B (zh) | 测试用例自动化生成装置及方法 | |
CN102662833B (zh) | 一种管理测试用例的方法 | |
CN102043719B (zh) | 一种对iec61850配置描述文件进行测试的方法 | |
CN104063325A (zh) | 一种针对嵌入式软件的测试用例自动化生成装置及其方法 | |
CN104598376A (zh) | 一种数据驱动的分层自动化测试系统和方法 | |
CN103838672A (zh) | 一种通用报表的自动化测试方法及装置 | |
US10528688B1 (en) | System and method for schematic-driven generation of input/output models | |
CN103019726A (zh) | 软件系统业务规则的管理方法和装置 | |
CN105653255B (zh) | 一种在office框架中设置报告模板以自动生成报告文件的方法 | |
CN105975466A (zh) | 一种面向短新闻的机器写稿方法及装置 | |
CN103336805A (zh) | 一种基于图形化映射关系的定制报表自动生成方法及装置 | |
CN103677821A (zh) | 软件开发工具代码发布的方法和装置 | |
CN104657274A (zh) | 软件界面测试方法及装置 | |
CN104750887A (zh) | 一种模板化产生参数化单元的方法 | |
CN102521551B (zh) | 一种实现ic卡个人化发行装置及方法 | |
CN103440197B (zh) | 一种基于对比测试自动生成差异测试报告的方法 | |
CN104298705A (zh) | 一种关系型数据和非结构化数据的转换方法 | |
CN103699478A (zh) | 一种测试案例生成系统和方法 | |
CN104268713A (zh) | 一种绩效考核计算方法及系统 | |
CN105808748A (zh) | 一种mib版本对比方法和装置 | |
CN103810365A (zh) | 一种基于水电仿真培训系统自动评分的方法 | |
CN102184286B (zh) | 自动生成仪表回路图的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150121 |
|
RJ01 | Rejection of invention patent application after publication |