CN109359039A - 一种提升Sahi自动化测试效率的方法 - Google Patents
一种提升Sahi自动化测试效率的方法 Download PDFInfo
- Publication number
- CN109359039A CN109359039A CN201811153922.0A CN201811153922A CN109359039A CN 109359039 A CN109359039 A CN 109359039A CN 201811153922 A CN201811153922 A CN 201811153922A CN 109359039 A CN109359039 A CN 109359039A
- Authority
- CN
- China
- Prior art keywords
- test
- case
- parameter
- sahi
- test data
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/368—Test management for test version control, e.g. updating test cases to a new software version
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种提升Sahi自动化测试效率的方法,创建单元测试用例;将测试脚本库加载到单元测试用例中;创建测试数据文件;在测试脚本库中实现对测试数据文件的读取操作;在执行单元测试用例之前,根据单元测试用例所需要使用的参数,调用测试脚本库获取所需的测试数据;利用获取的测试数据执行单元测试用例或者测试套件。本发明优点:不仅极大的便利了项目的版本管理,而且大大提升了测试效率和测试效果;同时,测试执行非常灵活,测试成本也得到了降低。
Description
技术领域
本发明涉及测试领域,特别涉及一种提升Sahi自动化测试效率的方法。
背景技术
Sahi作为轻量级的WEB测试工具,通常是使用Plain Suites(普通套件)或者DataDriven Suites(数据驱动套件)等测试套件来实现大量单元测试用例的测试。在现有技术中,由于单元测试用例中的测试数据与测试脚本是被混合编写的,且在测试套件中测试数据是无法进行参数化的;因此,必然存在一个不可避免的问题:当系统测试需要反复通过测试套件的方式执行,并且测试数据必须进行更新时,每次都需要更新整个测试套件的所有单元测试用例的参数值,在自动化单元测试用例达到一定数量的情况下,测试效率会变得非常低下,且不利于自动化脚本的版本管理,这导致不仅会严重影响自动化测试的效果,且会增加软件测试乃至整个项目的成本。
发明内容
本发明要解决的技术问题,在于提供一种提升Sahi自动化测试效率的方法,通过该方法不仅极大的便利了项目的版本管理,而且大大提升了测试效率和测试效果。
本发明是这样实现的:一种提升Sahi自动化测试效率的方法,所述方法包括:
步骤S1、创建单元测试用例;
步骤S2、将测试脚本库加载到单元测试用例中;
步骤S3、创建测试数据文件;
步骤S4、在测试脚本库中实现对测试数据文件的读取操作;
步骤S5、在开始执行单元测试用例之前,根据单元测试用例所需要使用到的参数,调用测试脚本库获取所需的测试数据;
步骤S6、利用获取的测试数据执行对单元测试用例或者测试套件的测试操作。
进一步地,所述步骤S1具体为:在Sahi的Edit工具中,按照被测试系统的功能模块划分,创建存储于对应功能模块下的单元测试用例。
进一步地,所述步骤S2具体为:在单元测试用例的首行中查找到loadSahi关键字,并使用loadSahi关键字将测试脚本库加载到单元测试用例中;所述测试脚本库用于存储将具体操作模块化后的功能模块的操作函数,且在具体存储时,将不同功能模块的操作函数存储于不同的脚本库文件中,同时,将各个功能模块均可调用的操作函数存储于一个公共的脚本库文件中。
进一步地,所述步骤S3具体为:在项目目录的固定位置,创建CVS类型的测试数据文件,且设置测试数据文件的首行为参数名称,设置测试数据文件的次行为参数值,并在其它任意行进行参数备注。
更进一步地,所述步骤S3还包括:使用表格样式来区分每轮测试执行的必改参数和相对固定参数。
更进一步地,所述步骤S3还包括:按照不同功能模块来划分参数,且将不同功能模块的参数存放于不同的表页中;或者按照不同测试套件来划分参数,且将同一测试套件所包含的参数存放于同一表页中。
进一步地,所述步骤S4具体为:
通过测试脚本库的自动化脚本获取项目的根目录,并得到测试数据文件的路径;同时,在测试脚本库中开发读取操作函数,以通过读取操作函数根据路径、参数名称和表页从测试数据文件中读取测试数据。
进一步地,所述步骤S5具体为:
在开始执行单元测试用例之前,根据单元测试用例所需要使用到的参数,先在单元测试用例的测试步骤开始前的位置插入读取测试数据的操作,并调用测试脚本库的读取操作函数获取所需的测试数据。
进一步地,在所述步骤S6中,所述测试套件由预先设计好测试流程的复数个单元测试用例组合而成,且所述测试套件中包含有各个单元测试用例的路径。
本发明具有如下优点:1、采用测试脚本读取测试数据文件的方式,将脚本与数据独立开来,使测试数据只有文件模板纳入项目管理中;在每轮执行需要变更参数值时,只需在测试数据文件进行统一修改,有效的解决了以往在批量执行时测试者需要逐一审核和修改每个单元测试用例或者测试套件的参数问题,并且不必对这种变更进行管理,不仅极大便利了项目的版本管理,而且大大提升了测试效率和测试效果。
2、由于单元测试用例和测试套件中均不存在需要变更的参数值,测试者可以根据项目测试要求或调试要求,一旦设定好测试数据文件后,既可以单独执行单元测试用例,也可以执行包含了多个单元测试用例的测试套件,使得测试执行非常灵活,测试成本也得到了降低。
附图说明
下面参照附图结合实施例对本发明作进一步的说明。
图1为本发明一种提升Sahi自动化测试效率的方法的执行流程图。
具体实施方式
请参阅图1所示,本发明一种提升Sahi自动化测试效率的方法的较佳实施例,所述方法包括:
步骤S1、创建单元测试用例;
所述步骤S1具体为:在Sahi的Edit工具中,按照被测试系统的功能模块划分,创建存储于对应功能模块下的单元测试用例。所述单元测试用例是根据手工用例自动化后实现的测试用例,可直接进行脚本开发、参数化、调用测试脚本库或者读取测试数据文件。
步骤S2、将测试脚本库加载到单元测试用例中;
所述步骤S2具体为:在单元测试用例的首行中查找到loadSahi关键字,并使用loadSahi关键字将测试脚本库加载到单元测试用例中;
所述测试脚本库用于存储将具体操作模块化后的功能模块的操作函数,且在具体存储时,将不同功能模块的操作函数存储于不同的脚本库文件中,以便于进行管理;同时,将各个功能模块均可调用的操作函数存储于一个公共的脚本库文件中,以方便需要的功能模块都可以去调用。
步骤S3、创建测试数据文件;
所述步骤S3具体为:在项目目录的固定位置,创建CVS类型的测试数据文件,且设置测试数据文件的首行为参数名称,设置测试数据文件的次行为参数值,并在其它任意行进行参数备注。
所述步骤S3还包括:使用表格样式来区分每轮测试执行的必改参数和相对固定参数,例如,可以通过填充颜色的方式来区分每轮测试执行的必改参数和相对固定参数,这样,就可以很容易将必改参数和相对固定参数区分开来。
所述步骤S3还包括:按照不同功能模块来划分参数,且将不同功能模块的参数存放于不同的表页中,以方便在实施时可以区分提取参数;或者按照不同测试套件来划分参数,且将同一测试套件所包含的参数存放于同一表页中,以方便在测试某一测试套件时,可以直接从对应的表页中获取所有需要的测试数据,有助于提高测试效率。
所述测试数据文件是存储于项目的某一固定路径下的,且在测试数据文件中存放有自动化脚本运行过程中所需要的测试数据,在具体实施时,当某一个单元测试用例包含有一个新参数时,则需要将新参数添加到测试数据文件中;在测试执行之前,可以根据实际单元测试用例的测试需求去修改测试数据文件中的参数值;在测试执行时,每个单元测试用例都可以通过测试脚本库的读取操作函数来访问测试数据文件,并从测试数据文件获取需要的测试数据。
步骤S4、在测试脚本库中实现对测试数据文件的读取操作,并且应包含需要使用的参数名称作为读取输入参数;
所述步骤S4具体为:
通过测试脚本库的自动化脚本获取项目的根目录,并得到测试数据文件的路径;同时,在测试脚本库中开发读取操作函数(在读取操作函数中包含有需要使用的参数名称作为读取输入参数),以通过读取操作函数根据路径、参数名称和表页从测试数据文件中读取测试数据。
步骤S5、在开始执行单元测试用例之前,根据单元测试用例所需要使用到的参数,调用测试脚本库获取所需的测试数据;
所述步骤S5具体为:
在开始执行单元测试用例之前,根据单元测试用例所需要使用到的参数,先在单元测试用例的测试步骤开始前的位置插入读取测试数据的操作(同时需要存储为变量),并调用测试脚本库的读取操作函数获取所需的测试数据。
步骤S6、利用获取的测试数据执行对单元测试用例或者测试套件的测试操作;在具体实施时,除固定数据外的其他所有测试数据都来自于测试数据文件,具体所需的测试数据可以由测试人员在测试开始前填入到测试数据文件中;在具体进行测试时,既可以执行单个单元测试用例,也可以执行由数个单元测试用例组合而成的测试套件,如果是测试套件的话,则需要先创建测试套件,并预先设计好各个单元测试用例的测试流程。
在所述步骤S6中,所述测试套件由预先设计好测试流程的复数个单元测试用例组合而成,且所述测试套件中包含有各个单元测试用例的路径;在测试套件中,各单元测试用例的顺序通常与测试数据高度相关,例如,当单元测试用例A产生测试数据data1后,单元测试用例B若需要使用data1数据,则在测试套件中的顺序必须被设计在单元测试用例A之后,否则的话,若data1数据不存在,将会导致单元测试用例B执行失败,因此,需要预先设计好测试流程,以确保能够顺利进行测试。
综上所述,本发明具有如下优点:
1、采用测试脚本读取测试数据文件的方式,将脚本与数据独立开来,使测试数据只有文件模板纳入项目管理中;在每轮执行需要变更参数值时,只需在测试数据文件进行统一修改,有效的解决了以往在批量执行时测试者需要逐一审核和修改每个单元测试用例或者测试套件的参数问题,并且不必对这种变更进行管理,不仅极大便利了项目的版本管理,而且大大提升了测试效率和测试效果。
2、由于单元测试用例和测试套件中均不存在需要变更的参数值,测试者可以根据项目测试要求或调试要求,一旦设定好测试数据文件后,既可以单独执行单元测试用例,也可以执行包含了多个单元测试用例的测试套件,使得测试执行非常灵活,测试成本也得到了降低。
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。
Claims (9)
1.一种提升Sahi自动化测试效率的方法,其特征在于:所述方法包括:
步骤S1、创建单元测试用例;
步骤S2、将测试脚本库加载到单元测试用例中;
步骤S3、创建测试数据文件;
步骤S4、在测试脚本库中实现对测试数据文件的读取操作;
步骤S5、在开始执行单元测试用例之前,根据单元测试用例所需要使用到的参数,调用测试脚本库获取所需的测试数据;
步骤S6、利用获取的测试数据执行对单元测试用例或者测试套件的测试操作。
2.根据权利要求1所述的一种提升Sahi自动化测试效率的方法,其特征在于:所述步骤S1具体为:在Sahi的Edit工具中,按照被测试系统的功能模块划分,创建存储于对应功能模块下的单元测试用例。
3.根据权利要求1所述的一种提升Sahi自动化测试效率的方法,其特征在于:所述步骤S2具体为:在单元测试用例的首行中查找到loadSahi关键字,并使用loadSahi关键字将测试脚本库加载到单元测试用例中;所述测试脚本库用于存储将具体操作模块化后的功能模块的操作函数,且在具体存储时,将不同功能模块的操作函数存储于不同的脚本库文件中,同时,将各个功能模块均可调用的操作函数存储于一个公共的脚本库文件中。
4.根据权利要求1所述的一种提升Sahi自动化测试效率的方法,其特征在于:所述步骤S3具体为:在项目目录的固定位置,创建CVS类型的测试数据文件,且设置测试数据文件的首行为参数名称,设置测试数据文件的次行为参数值,并在其它任意行进行参数备注。
5.根据权利要求4所述的一种提升Sahi自动化测试效率的方法,其特征在于:所述步骤S3还包括:使用表格样式来区分每轮测试执行的必改参数和相对固定参数。
6.根据权利要求4所述的一种提升Sahi自动化测试效率的方法,其特征在于:所述步骤S3还包括:按照不同功能模块来划分参数,且将不同功能模块的参数存放于不同的表页中;或者按照不同测试套件来划分参数,且将同一测试套件所包含的参数存放于同一表页中。
7.根据权利要求1所述的一种提升Sahi自动化测试效率的方法,其特征在于:所述步骤S4具体为:
通过测试脚本库的自动化脚本获取项目的根目录,并得到测试数据文件的路径;同时,在测试脚本库中开发读取操作函数,以通过读取操作函数根据路径、参数名称和表页从测试数据文件中读取测试数据。
8.根据权利要求1所述的一种提升Sahi自动化测试效率的方法,其特征在于:所述步骤S5具体为:
在开始执行单元测试用例之前,根据单元测试用例所需要使用到的参数,先在单元测试用例的测试步骤开始前的位置插入读取测试数据的操作,并调用测试脚本库的读取操作函数获取所需的测试数据。
9.根据权利要求1所述的一种提升Sahi自动化测试效率的方法,其特征在于:在所述步骤S6中,所述测试套件由预先设计好测试流程的复数个单元测试用例组合而成,且所述测试套件中包含有各个单元测试用例的路径。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811153922.0A CN109359039B (zh) | 2018-09-30 | 2018-09-30 | 一种提升Sahi自动化测试效率的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811153922.0A CN109359039B (zh) | 2018-09-30 | 2018-09-30 | 一种提升Sahi自动化测试效率的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109359039A true CN109359039A (zh) | 2019-02-19 |
CN109359039B CN109359039B (zh) | 2023-01-31 |
Family
ID=65348462
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811153922.0A Active CN109359039B (zh) | 2018-09-30 | 2018-09-30 | 一种提升Sahi自动化测试效率的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109359039B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110460497A (zh) * | 2019-08-20 | 2019-11-15 | 迈普通信技术股份有限公司 | 一种自动化测试方法、装置及系统 |
CN112069073A (zh) * | 2020-09-07 | 2020-12-11 | 深圳创维-Rgb电子有限公司 | 测试用例的管理方法、终端和存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103019934A (zh) * | 2012-11-28 | 2013-04-03 | 北京交控科技有限公司 | 基于数据代码分离技术的测试用例生成方法 |
CN104008045A (zh) * | 2013-02-25 | 2014-08-27 | 阿里巴巴集团控股有限公司 | 脚本录制操作中的步骤标识方法和系统 |
CN104820640A (zh) * | 2015-05-19 | 2015-08-05 | 广州华多网络科技有限公司 | 一种网页测试方法和装置 |
CN104834594A (zh) * | 2014-12-29 | 2015-08-12 | 平安科技(深圳)有限公司 | web系统测试方法及装置 |
CN105808417A (zh) * | 2014-12-29 | 2016-07-27 | 平安科技(深圳)有限公司 | 自动化测试方法及代理服务器 |
CN107608880A (zh) * | 2017-08-24 | 2018-01-19 | 郑州云海信息技术有限公司 | 一种基于数据驱动用于虚拟化平台的自动化测试方法 |
CN107729230A (zh) * | 2017-09-18 | 2018-02-23 | 郑州云海信息技术有限公司 | 一种基于控件模式下的web自动化测试装置及测试方法 |
US20180173606A1 (en) * | 2016-12-15 | 2018-06-21 | Syntel, Inc. | Hybrid testing automation engine |
-
2018
- 2018-09-30 CN CN201811153922.0A patent/CN109359039B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103019934A (zh) * | 2012-11-28 | 2013-04-03 | 北京交控科技有限公司 | 基于数据代码分离技术的测试用例生成方法 |
CN104008045A (zh) * | 2013-02-25 | 2014-08-27 | 阿里巴巴集团控股有限公司 | 脚本录制操作中的步骤标识方法和系统 |
CN104834594A (zh) * | 2014-12-29 | 2015-08-12 | 平安科技(深圳)有限公司 | web系统测试方法及装置 |
CN105808417A (zh) * | 2014-12-29 | 2016-07-27 | 平安科技(深圳)有限公司 | 自动化测试方法及代理服务器 |
CN104820640A (zh) * | 2015-05-19 | 2015-08-05 | 广州华多网络科技有限公司 | 一种网页测试方法和装置 |
US20180173606A1 (en) * | 2016-12-15 | 2018-06-21 | Syntel, Inc. | Hybrid testing automation engine |
CN107608880A (zh) * | 2017-08-24 | 2018-01-19 | 郑州云海信息技术有限公司 | 一种基于数据驱动用于虚拟化平台的自动化测试方法 |
CN107729230A (zh) * | 2017-09-18 | 2018-02-23 | 郑州云海信息技术有限公司 | 一种基于控件模式下的web自动化测试装置及测试方法 |
Non-Patent Citations (3)
Title |
---|
BAIDU_29649941: "基于sahi的UI自动化测试框架", 《HTTPS://BLOG.CSDN.NET/BAIDU_29649941/ARTICLE/DETAILS/51747712》 * |
THANUJA JANARTHANA NAIDU等: "SAHI vs. Selenium: A comparative analysis", 《2014 INTERNATIONAL CONFERENCE ON CONTEMPORARY COMPUTING AND INFORMATICS (IC3I)》 * |
潘晓利等: "基于Web应用系统自动化技术的探索", 《现代计算机(专业版)》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110460497A (zh) * | 2019-08-20 | 2019-11-15 | 迈普通信技术股份有限公司 | 一种自动化测试方法、装置及系统 |
CN112069073A (zh) * | 2020-09-07 | 2020-12-11 | 深圳创维-Rgb电子有限公司 | 测试用例的管理方法、终端和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109359039B (zh) | 2023-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103853652B (zh) | 一种测试案例生成方法及装置 | |
CN103412820B (zh) | Web系统中的页面的测试方法和装置 | |
CN102541521B (zh) | 基于结构化查询语言的操作指令自动生成装置及方法 | |
CN112630622B (zh) | ATE设备的pattern编译下载测试的方法及系统 | |
CN110287097A (zh) | 批量测试方法、装置及计算机可读存储介质 | |
CN100353327C (zh) | 通过由测试集组成的测试环境来实现产品自动测试的方法 | |
CN107665171A (zh) | 自动回归测试方法及装置 | |
CN110109897A (zh) | 数据库脚本生成方法、装置、计算机设备和存储介质 | |
CN107741903A (zh) | 应用程序兼容性测试方法、装置、计算机设备和存储介质 | |
CN107832207A (zh) | 接口性能测试方法、装置、存储介质和计算机设备 | |
CN108595342A (zh) | 单元测试方法和装置 | |
CN111428431A (zh) | 一种支持eda软件的自动化测试并记录的方法及系统 | |
CN104899141B (zh) | 一种面向网络应用系统的测试用例选择与扩充方法 | |
CN111813661A (zh) | 一种全局业务数据驱动自动测试方法、装置、设备和介质 | |
CN110543427B (zh) | 测试用例存储方法、装置、电子设备及存储介质 | |
CN109934507A (zh) | 一种业务流程调度的方法及装置 | |
CN109359039A (zh) | 一种提升Sahi自动化测试效率的方法 | |
CN102486749A (zh) | 数据驱动测试方法及系统 | |
CN103942140A (zh) | 一种测试程序自动转换方法 | |
US6434503B1 (en) | Automated creation of specific test programs from complex test programs | |
CN105718373B (zh) | 满足do-178c的代码覆盖率生成方法 | |
CN111078548B (zh) | 测试用例解析方法、装置、存储介质及验证平台 | |
CN107291439A (zh) | 一种目标增量数据构建方法及装置 | |
CN111061244A (zh) | 一种配电主站监控系统的自动化测试方法 | |
CN1983168A (zh) | 对自动测试系统仪器装置执行控制与撷取数据的处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 350000 21 / F, building 5, f District, Fuzhou Software Park, 89 software Avenue, Gulou District, Fuzhou City, Fujian Province Applicant after: FUJIAN SINOREGAL SOFTWARE CO.,LTD. Address before: Floor 20-21, building 5, area F, Fuzhou Software Park, 89 software Avenue, Gulou District, Fuzhou City, Fujian Province 350000 Applicant before: FUJIAN SINOREGAL SOFTWARE CO.,LTD. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |