CN109840192A - 自动化测试的方法和装置 - Google Patents
自动化测试的方法和装置 Download PDFInfo
- Publication number
- CN109840192A CN109840192A CN201711204964.8A CN201711204964A CN109840192A CN 109840192 A CN109840192 A CN 109840192A CN 201711204964 A CN201711204964 A CN 201711204964A CN 109840192 A CN109840192 A CN 109840192A
- Authority
- CN
- China
- Prior art keywords
- test
- program
- testing procedure
- testing
- test case
- 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
Landscapes
- Stored Programmes (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本发明公开了一种自动化测试的方法和装置,涉及计算机领域。该方法的一具体实施方式包括:根据用于触发测试用例执行的执行指令,获取所述测试用例中的测试步骤;其中,所述测试步骤以非编程语言的、任一种自然语言编写;确定与所述测试步骤对应的测试方法,根据所述测试方法生成测试程序。该实施方式能够基于测试人员使用自然语言编写的测试用例中的测试步骤,生成测试软件可自动执行的测试程序,从而使测试人员不需掌握编程语言即可完成测试,从而提高测试效率、降低测试成本。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种自动化测试的方法和装置。
背景技术
在计算机技术领域,Web软件在发布上线之前,需要进行全面的功能测试以减少系统缺陷,从而避免对客户的使用造成影响。其中,Web软件可以是各类网站以及各类网上系统。在Web软件测试时,需要测试人员使用编程语言编写测试程序,并通过第三方测试软件以手动执行或定时自动执行的方式运行测试程序,实现自动化测试。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
1.在现有的软件测试领域中,需要测试人员使用编程语言编写测试程序,这对测试人员提出了较高的专业要求,同时测试程序不易调试、测试效率较低。随着软件功能的迭代,测试的工作量急剧增加,现有的测试方法难以满足测试需求。
2.测试程序不能直观体现测试用例描述的测试意图,由此增加测试程序的阅读与维护成本。
发明内容
有鉴于此,本发明实施例提供一种自动化测试的方法和装置,能够基于测试人员使用自然语言编写的测试用例中的测试步骤,生成测试软件可自动执行的测试程序,从而使测试人员不需掌握编程语言即可完成测试,从而提高测试效率、降低测试成本。
为实现上述目的,根据本发明的一个方面,提供了一种自动化测试的方法。
本发明实施例的自动化测试的方法包括:根据用于触发测试用例执行的执行指令,获取所述测试用例中的测试步骤;其中,所述测试步骤以非编程语言的、任一种自然语言编写;确定与所述测试步骤对应的测试方法,根据所述测试方法生成测试程序。
可选地,所述测试步骤符合预设的编写规则。
可选地,所述执行指令携带所述测试用例的标识;以及所述根据用于触发测试用例执行的执行指令,获取所述测试用例中的测试步骤包括:根据所述执行指令携带的所述测试用例的标识,获取所述测试步骤。
可选地,确定与所述测试步骤对应的测试方法包括:获取预设的多种步骤模式;其中,所述步骤模式为基于所述自然语言的表达式,任一步骤模式对应于至少一个测试方法;在所述多种步骤模式中确定与所述测试步骤匹配的步骤模式,将该步骤模式对应的测试方法作为与所述测试步骤对应的测试方法。
可选地,所述步骤模式为正则表达式。
可选地,所述测试方法以及所述测试程序为字节码程序;以及所述根据所述测试方法生成测试程序包括:利用字节码处理工具,将所述测试方法转换为所述测试程序。
可选地,所述测试用例进一步包括测试参数;以及所述方法进一步包括:运行所述测试程序;在运行所述测试程序时,将所述测试参数发送到所述测试程序;其中,所述测试参数是利用所述测试用例的标识获取的。
可选地,所述测试用例进一步包括页面元素名称,所述测试参数包括:与所述页面元素名称对应的选择表达式;以及在将所述选择表达式发送到所述测试程序之后,加载测试工具以执行所述选择表达式。
可选地,所述选择表达式为jQuery选择器表达式,所述测试工具为WebDriver,所述自然语言为汉语。
为实现上述目的,根据本发明的又一方面,提供了一种自动化测试的装置。
本发明实施例的自动化测试的装置可包括:步骤获取模块,可用于根据用于触发测试用例执行的执行指令,获取所述测试用例中的测试步骤;其中,所述测试步骤以非编程语言的、任一种自然语言编写;程序获取模块,可用于确定与所述测试步骤对应的测试方法,根据所述测试方法生成测试程序。
可选地,所述测试步骤符合预设的编写规则。
可选地,所述执行指令可携带所述测试用例的标识;以及步骤获取模块可进一步用于:根据所述执行指令携带的所述测试用例的标识,获取所述测试步骤。
可选地,程序获取模块可进一步用于:获取预设的多种步骤模式;其中,所述步骤模式为基于所述自然语言的表达式,任一步骤模式对应于至少一个测试方法;在所述多种步骤模式中确定与所述测试步骤匹配的步骤模式,将该步骤模式对应的测试方法作为与所述测试步骤对应的测试方法。
可选地,所述步骤模式为正则表达式。
可选地,所述测试方法以及所述测试程序为字节码程序;以及程序获取模块可进一步用于:利用字节码处理工具,将所述测试方法转换为所述测试程序。
可选地,所述测试用例可进一步包括测试参数;以及所述装置可进一步包括:运行模块,可用于运行所述测试程序;在运行所述测试程序时,将所述测试参数发送到所述测试程序;其中,所述测试参数是利用所述测试用例的标识获取的。
可选地,所述测试用例可进一步包括页面元素名称,所述测试参数可包括:与所述页面元素名称对应的选择表达式;以及运行模块可进一步用于:在将所述选择表达式发送到所述测试程序之后,加载测试工具以执行所述选择表达式。
可选地,所述选择表达式为jQuery选择器表达式,所述测试工具为WebDriver,所述自然语言为汉语。
为实现上述目的,根据本发明的又一方面,提供了一种电子设备。
本发明的一种电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明所提供的自动化测试的方法。
为实现上述目的,根据本发明的再一方面,提供了一种计算机可读存储介质。
本发明的一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明所提供的自动化测试的方法。
根据本发明的技术方案,上述发明中的一个实施例具有如下优点或有益效果:根据测试人员以自然语言编写的测试步骤,即可获得测试软件可自动执行的测试程序,由此使测试人员不需掌握编程语言即可完成测试,从而提高测试效率、降低测试成本、满足日益增长的软件测试需求;同时,测试用例由测试人员使用例如汉语的自然语言编写,能够直观体现测试意图,降低系统阅读与维护成本;通过预先设置步骤模式、以及与步骤模式对应的测试方法,实现以例如汉语的自然语言编写的测试步骤、与以字节码编写的测试方法的关联,有助于基于自然语言的测试用例的测试逻辑转换;通过字节码处理工具将测试方法转换为测试软件可自动执行的测试程序,实现了测试程序的自动生成。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的自动化测试的方法的主要步骤示意图;
图2是根据本发明实施例的自动化测试的方法的具体实现示意图;
图3是根据本发明实施例的自动化测试的装置的主要部分示意图;
图4是根据本发明实施例可以应用于其中的示例性系统架构图;
图5是用来实现本发明实施例的自动化测试的方法的电子设备的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
在本发明实施例的技术方案中,根据测试人员以自然语言编写的测试步骤,即可获得测试软件可自动执行的测试程序,由此使测试人员不需掌握编程语言即可完成测试,从而提高测试效率、降低测试成本、满足日益增长的软件测试需求;同时,测试用例由测试人员使用例如汉语的自然语言编写,能够直观体现测试意图,降低系统阅读与维护成本;通过预先设置步骤模式、以及与步骤模式对应的测试方法,实现以例如汉语的自然语言编写的测试步骤、与以字节码编写的测试方法的关联,有助于基于自然语言的测试用例的测试逻辑转换;通过字节码处理工具将测试方法转换为测试软件可自动执行的测试程序,实现了测试程序的自动生成。
需要指出的是,在不冲突的情况下,本发明的实施例以及实施例中的技术特征可以相互结合。
图1是根据本发明实施例的自动化测试的方法的主要步骤示意图。
如图1所示,本发明实施例的自动化测试的方法可以按照以下步骤执行:
步骤S101:根据用于触发测试用例执行的执行指令,获取测试用例中的测试步骤。
可以理解的是,本步骤中的测试用例指的是为测试Web软件的功能而编制的一组测试输入、执行条件以及预期结果。一般地,测试用例可以包括至少一个用于描述测试行为的测试步骤。实际应用中,测试用例还可以包括测试参数与页面元素名称,其中,测试参数指的是测试过程需要使用的URL(Uniform Resoure Locator,统一资源定位符)、数量、价格等参数,页面元素指的是以HTML(HyperText Markup Language,超文本标记语言)规范定义的例如按钮元素、输入框元素、布局元素的代码标签。具体应用中,测试人员设置测试用例之后,将测试步骤、测试参数、页面元素名称等数据存储在数据库,并用测试用例的标识作为索引。
本发明实施例中的一个测试用例可如下表所示:
序号 | 测试步骤 | 页面元素名称 | 测试参数 | 备注 |
1 | 进入商品购买页面 | http://xxx.html | ||
2 | 页面中商品价格显示正确 | 商品价格显示标签 | 12.00 | 价格为12元 |
3 | 选择购买数量下拉框,选择数量 | 数量下拉框 | 2 | 下拉框选项 |
4 | 点击立即购买按钮 | 购买按钮 | ||
5 | 进入我的购物车页面 | http://xx.html | ||
6 | 等待 | 2 | 等待2秒 | |
7 | 页面中正确显示结算金额 | 结算金额显示标签 | 24.00 | 验证结果 |
特别地,在本发明实施例中,测试参数还可以包括:与页面元素名称对应的选择表达式。其中,选择表达式用于标识页面元素,且能够在测试程序中使用。较佳地,选择表达式可以是jQuery(jQuery是JavaScript编写的、可以在浏览器中执行的工具或代码。JavaScript是一种程序设计语言,其编写的代码可以在浏览器中运行。)选择器表达式。具体应用中,可以针对每一页面元素名称确定其jQuery选择器表达式,并将二者存储在数据库。测试程序运行时,可以从数据库中获取jQuery选择器表达式并执行,以得到对应的页面元素。
页面元素名称与jQuery选择器表达式的对应关系可如下表所示:
页面元素名称 | jQuery选择器表达式 |
商品价格显示标签 | #curr_price |
购买按钮 | button.buy_btn |
在本步骤中,测试用例中的测试步骤均使用非编程语言的、任一种自然语言编写。其中,自然语言指的是自然地、随文化演化形成的语言。例如:汉语、俄语、梵语都可以作为自然语言,而C语言、PHP语言、JAVA语言不是自然语言。实际应用中,自然语言可以是测试人员熟悉的语言。较佳地,在本发明实施例中,自然语言为汉语,以下将以汉语为例具体介绍本发明的自动化测试的方法。可以理解的是,本发明实施例的自动化测试的方法并不局限于汉语,完全可以使用其它自然语言编写测试用例,生成测试程序。
需要说明的是,测试步骤使用自然语言编写指的是测试步骤中除标点之外的字符中的大多数为所述自然语言。此外,测试步骤一般需要按照预设的编写规则进行编写以利于后续解析。
在本步骤中,执行指令携带测试用例的标识,以触发测试用例执行。实际应用中,执行指令可以由测试人员手动发出,也可以由定时程序控制在一段时间之后发出或周期性发出。
较佳地,在本发明实施例中,接收到执行指令后,可以根据其携带的测试用例的标识从数据库中获取该测试用例包括的测试步骤,以实现测试程序的自动生成。
步骤S102:确定与测试步骤对应的测试方法,根据测试方法生成测试程序。
在本步骤中,测试方法可以是描述测试步骤中测试行为的程序,测试程序指的是可以直接由测试软件,例如Junit(JUnit是基于Java语言的单元测试框架)、WebDriver(WebDriver是一种自动测试工具),自动执行、进而产生测试结果的程序。在一可选实现方式中,测试方法及测试程序均为字节码程序。
具体地,在本步骤中可通过以下方式确定与测试步骤对应的测试方法:
1.获取预设的多种步骤模式。
实际应用中,步骤模式均为基于所述自然语言的表达式,同时,每一步骤模式均对应至少一个测试方法。较佳地,步骤模式可以是基于所述自然语言的正则表达式。可以理解的是,步骤模式也可以是具有类似功能的其它类型的表达式。其中,基于所述自然语言的表达式指的是:在该表达式中,除指示型字符之外的表意字符中的大多数为所述自然语言。
例如:步骤模式为正则表达式时,排除正则表达式特有的“.”、“\”、“w”、“s”、“d”、“^”、“?”等指示型字符,正则表达式“^点击”、“^进入.*”均为基于汉语的表达式。
2.针对测试用例的每一测试步骤,遍历所有步骤模式,选择与该测试步骤匹配的步骤模式。
可以理解的是,步骤模式与测试步骤匹配指的是:该测试步骤符合步骤模式体现的语法规则。例如:
测试步骤 | 与测试步骤匹配的步骤模式 |
进入商品购买页面 | ^((进入.*页(面)?)|(访问)) |
点击商品购买按钮 | ^点击 |
页面中正确显示结算金额 | ^(响应)?((结果)|(页面?))中?(能够)?(正确)?显示 |
在上表中,测试步骤符合预设的编写规则,步骤模式为正则表达式,左侧的测试步骤分别与右侧同行的正则表达式匹配。一般地,编写规则可以由测试人员灵活设置,在上表中,编写规则可以是“进入……页面”、“点击……”、“……正确显示……”。
3.确定与测试步骤匹配的步骤模式对应的测试方法,将所述测试方法作为与测试步骤对应的测试方法。
通过上述步骤,即可确定与测试步骤对应的测试方法。进一步地,可以由所述测试方法获取测试程序。
具体地,可以利用相应工具将测试方法或测试方法的集合转换为测试程序。例如:在测试方法为多个字节码程序时,可以利用字节码处理工具Javassist将方法集合组合为测试程序。
在本发明实施例中,获取测试程序之后,可以利用Junit等自动测试软件运行该测试程序。运行时,将测试程序所需的测试参数(包括与页面元素名称对应的选择表达式)发送到测试程序。需要强调的是,上述测试参数是在得到测试用例的测试步骤时,利用该测试用例的标识从数据库中获取。
特别地,将选择表达式传入测试程序之后,可以调用测试工具执行该选择表达式,以获取页面元素。例如:将页面元素对应的jQuery选择器表达式传入测试程序之后,可以调用WebDriver执行该选择表达式,以获取对应的页面元素。
具体应用中,随着测试程序的运行,可以对运行结果进行验证,最终生成测试报告存储于数据库。
这样,本发明即可将测试人员编写的基于自然语言的测试用例转换为可自动执行的测试程序,由此使测试人员不必编写测试程序,可将工作重心置于测试用例的设计,从而提高测试效率、降低测试成本。
图2是根据本发明实施例的自动化测试的方法的具体实现示意图。
如图2所示,本发明实施例的自动化测试的方法在实际应用中可以通过管理单元201、中文解析单元204、测试执行单元203、测试报告管理单元205以及数据库202实现。
具体地,管理单元201用于提供管理界面供测试人员输入数据。例如:测试人员可以创建测试项目、可以编写测试用例并执行、可以设置页面元素名称及对应的选择表达式、可以设置全局数据(全局数据指的是测试用例执行之前需要确定的数据)、可以进行权限管理。上述输入数据一般存储在数据库202。
中文解析单元204用于获取测试步骤对应的测试方法。具体地,中文解析单元204首先在步骤模式中确定与测试步骤匹配的步骤模式,如果无法确定,说明测试步骤不符合预设的编写规则。接着,确定该步骤模式对应的测试方法,如果无法确定,说明测试方法定义错误。最后,将确定的测试方法作为与测试步骤对应的测试方法,向测试执行单元203返回。
测试执行单元203用于:接收到管理单元201发送的执行指令后,在Maven(Maven是采用Java编写的开源项目管理工具)环境启动测试软件Junit,同时根据执行指令携带的测试用例的标识获取测试步骤,并将测试步骤发送到中文解析单元204,以获取与测试步骤对应的测试方法。获得该测试方法之后,利用字节码处理工具Javassist将测试方法组合为测试程序,最后在Junit中运行测试程序,生成测试报告存储在数据库202。
可以理解的是,测试执行单元203也可直接启动Junit或启动Junit之外的测试软件、利用Javassist之外的字节码处理工具实现上述功能。
测试报告管理单元205可向测试人员提供测试结果,还可控制测试用例自动回归执行、以及失败测试用例回归执行。
根据本发明实施例的技术方案,通过测试人员以自然语言编写的测试步骤,即可获得测试软件可自动执行的测试程序,由此使测试人员不需掌握编程语言即可完成测试,从而提高测试效率、降低测试成本、满足日益增长的软件测试需求;同时,测试用例由测试人员使用例如汉语的自然语言编写,能够直观体现测试意图,降低系统阅读与维护成本;通过预先设置步骤模式、以及与步骤模式对应的测试方法,实现以例如汉语的自然语言编写的测试步骤、与以字节码编写的测试方法的关联,有助于基于自然语言的测试用例的测试逻辑转换;通过字节码处理工具将测试方法转换为测试软件可自动执行的测试程序,实现了测试程序的自动生成。
图3是根据本发明实施例的自动化测试的装置的主要部分示意图。
如图3所示,本发明实施例的自动化测试的装置300可包括:步骤获取模块301与程序获取模块302。其中:
步骤获取模块301可用于根据用于触发测试用例执行的执行指令,获取所述测试用例中的测试步骤;其中,所述测试步骤以非编程语言的、任一种自然语言编写;
程序获取模块302可用于确定与所述测试步骤对应的测试方法,根据所述测试方法生成测试程序。
较佳地,在本发明实施例中,所述测试步骤符合预设的编写规则。
作为一个优选方案,所述执行指令可携带所述测试用例的标识;以及步骤获取模块301可进一步用于:根据所述执行指令携带的所述测试用例的标识,获取所述测试步骤。
实际应用中,程序获取模块302可进一步用于:获取预设的多种步骤模式;其中,所述步骤模式为基于所述自然语言的表达式,任一步骤模式对应于至少一个测试方法;在所述多种步骤模式中确定与所述测试步骤匹配的步骤模式,将该步骤模式对应的测试方法作为与所述测试步骤对应的测试方法。
一般地,所述步骤模式为正则表达式。
在一可选实施方式中,所述测试方法以及所述测试程序为字节码程序;以及程序获取模块302可进一步用于:利用字节码处理工具,将所述测试方法转换为所述测试程序。
较佳地,所述测试用例可进一步包括测试参数;以及所述装置300可进一步包括:运行模块,可用于运行所述测试程序;在运行所述测试程序时,将所述测试参数发送到所述测试程序;其中,所述测试参数是利用所述测试用例的标识获取的。
实际应用中,所述测试用例可进一步包括页面元素名称,所述测试参数可包括:与所述页面元素名称对应的选择表达式;以及运行模块可进一步用于:在将所述选择表达式发送到所述测试程序之后,加载测试工具以执行所述选择表达式。
较佳地,所述选择表达式为jQuery选择器表达式,所述测试工具为WebDriver,所述自然语言为汉语。
根据本发明实施例的技术方案,通过测试人员以自然语言编写的测试步骤,即可获得测试软件可自动执行的测试程序,由此使测试人员不需掌握编程语言即可完成测试,从而提高测试效率、降低测试成本、满足日益增长的软件测试需求;同时,测试用例由测试人员使用例如汉语的自然语言编写,能够直观体现测试意图,降低系统阅读与维护成本;通过预先设置步骤模式、以及与步骤模式对应的测试方法,实现以例如汉语的自然语言编写的测试步骤、与以字节码编写的测试方法的关联,有助于基于自然语言的测试用例的测试逻辑转换;通过字节码处理工具将测试方法转换为测试软件可自动执行的测试程序,实现了测试程序的自动生成。
图4示出了可以应用本发明实施例的自动化测试的方法或自动化测试的装置的示例性系统架构400。
如图4所示,系统架构400可以包括终端设备401、402、403,网络404和服务器405(此架构仅仅是示例,具体架构中包含的组件可以根据申请具体情况调整)。网络404用以在终端设备401、402、403和服务器405之间提供通信链路的介质。网络404可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备401、402、403通过网络404与服务器405交互,以接收或发送消息等。终端设备401、402、403上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备401、402、403可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器405可以是提供各种服务的服务器,例如对用户利用终端设备401、402、403所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息--仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的自动化测试的方法一般由服务器405执行,相应地,自动化测试的装置一般设置于服务器405中。
应该理解,图4中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
本发明还提供了一种电子设备。
本发明实施例的电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明所提供的自动化测试的方法。
下面参考图5,其示出了适于用来实现本发明实施例的电子设备的计算机系统500的结构示意图。图5示出的电子设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,计算机系统500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM503中,还存储有计算机系统500操作所需的各种程序和数据。CPU501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便从其上读出的计算机程序根据需要被安装入存储部分508。
特别地,根据本发明公开的实施例,上文的主要步骤图描述的过程可以被实现为计算机软件程序。例如,本发明实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行主要步骤图所示的方法的程序代码。在上述实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被中央处理单元501执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。在本发明中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这根据所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括步骤获取模块与程序获取模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,步骤获取模块还可以被描述为“向程序获取模块发送测试步骤的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中的。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该设备执行时,使得该设备执行的步骤包括:根据用于触发测试用例执行的执行指令,获取所述测试用例中的测试步骤;其中,所述测试步骤以非编程语言的、任一种自然语言编写;确定与所述测试步骤对应的测试方法,根据所述测试方法生成测试程序。
根据本发明实施例的技术方案,通过测试人员以自然语言编写的测试步骤,即可获得测试软件可自动执行的测试程序,由此使测试人员不需掌握编程语言即可完成测试,从而提高测试效率、降低测试成本、满足日益增长的软件测试需求;同时,测试用例由测试人员使用例如汉语的自然语言编写,能够直观体现测试意图,降低系统阅读与维护成本;通过预先设置步骤模式、以及与步骤模式对应的测试方法,实现以例如汉语的自然语言编写的测试步骤、与以字节码编写的测试方法的关联,有助于基于自然语言的测试用例的测试逻辑转换;通过字节码处理工具将测试方法转换为测试软件可自动执行的测试程序,实现了测试程序的自动生成。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (20)
1.一种自动化测试的方法,其特征在于,包括:
根据用于触发测试用例执行的执行指令,获取所述测试用例中的测试步骤;其中,所述测试步骤以非编程语言的、任一种自然语言编写;
确定与所述测试步骤对应的测试方法,根据所述测试方法生成测试程序。
2.根据权利要求1所述的方法,其特征在于,所述测试步骤符合预设的编写规则。
3.根据权利要求1所述的方法,其特征在于,所述执行指令携带所述测试用例的标识;以及所述根据用于触发测试用例执行的执行指令,获取所述测试用例中的测试步骤包括:
根据所述执行指令携带的所述测试用例的标识,获取所述测试步骤。
4.根据权利要求1所述的方法,其特征在于,确定与所述测试步骤对应的测试方法包括:
获取预设的多种步骤模式;其中,所述步骤模式为基于所述自然语言的表达式,任一步骤模式对应于至少一个测试方法;
在所述多种步骤模式中确定与所述测试步骤匹配的步骤模式,将该步骤模式对应的测试方法作为与所述测试步骤对应的测试方法。
5.根据权利要求4所述的方法,其特征在于,所述步骤模式为正则表达式。
6.根据权利要求1所述的方法,其特征在于,所述测试方法以及所述测试程序为字节码程序;以及所述根据所述测试方法生成测试程序包括:
利用字节码处理工具,将所述测试方法转换为所述测试程序。
7.根据权利要求3所述的方法,其特征在于,所述测试用例进一步包括测试参数;以及所述方法进一步包括:
运行所述测试程序;
在运行所述测试程序时,将所述测试参数发送到所述测试程序;其中,所述测试参数是利用所述测试用例的标识获取的。
8.根据权利要求7所述的方法,其特征在于,所述测试用例进一步包括页面元素名称,所述测试参数包括:与所述页面元素名称对应的选择表达式;以及所述方法进一步包括:
在将所述选择表达式发送到所述测试程序之后,加载测试工具以执行所述选择表达式。
9.根据权利要求8所述的方法,其特征在于,所述选择表达式为jQuery选择器表达式,所述测试工具为WebDriver,所述自然语言为汉语。
10.一种自动化测试的装置,其特征在于,包括:
步骤获取模块,用于根据用于触发测试用例执行的执行指令,获取所述测试用例中的测试步骤;其中,所述测试步骤以非编程语言的、任一种自然语言编写;
程序获取模块,用于确定与所述测试步骤对应的测试方法,根据所述测试方法生成测试程序。
11.根据权利要求10所述的装置,其特征在于,所述测试步骤符合预设的编写规则。
12.根据权利要求10所述的装置,其特征在于,所述执行指令携带所述测试用例的标识;以及步骤获取模块进一步用于:
根据所述执行指令携带的所述测试用例的标识,获取所述测试步骤。
13.根据权利要求10所述的装置,其特征在于,程序获取模块进一步用于:
获取预设的多种步骤模式;其中,所述步骤模式为基于所述自然语言的表达式,任一步骤模式对应于至少一个测试方法;
在所述多种步骤模式中确定与所述测试步骤匹配的步骤模式,将该步骤模式对应的测试方法作为与所述测试步骤对应的测试方法。
14.根据权利要求13所述的装置,其特征在于,所述步骤模式为正则表达式。
15.根据权利要求10所述的装置,其特征在于,所述测试方法以及所述测试程序为字节码程序;以及程序获取模块进一步用于:
利用字节码处理工具,将所述测试方法转换为所述测试程序。
16.根据权利要求12所述的装置,其特征在于,所述测试用例进一步包括测试参数;以及所述装置进一步包括:
运行模块,用于运行所述测试程序;在运行所述测试程序时,将所述测试参数发送到所述测试程序;其中,所述测试参数是利用所述测试用例的标识获取的。
17.根据权利要求16所述的装置,其特征在于,所述测试用例进一步包括页面元素名称,所述测试参数包括:与所述页面元素名称对应的选择表达式;以及运行模块进一步用于:
在将所述选择表达式发送到所述测试程序之后,加载测试工具以执行所述选择表达式。
18.根据权利要求17所述的装置,其特征在于,所述选择表达式为jQuery选择器表达式,所述测试工具为WebDriver,所述自然语言为汉语。
19.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-9中任一所述的方法。
20.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-9中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711204964.8A CN109840192B (zh) | 2017-11-27 | 2017-11-27 | 自动化测试的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711204964.8A CN109840192B (zh) | 2017-11-27 | 2017-11-27 | 自动化测试的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109840192A true CN109840192A (zh) | 2019-06-04 |
CN109840192B CN109840192B (zh) | 2022-06-07 |
Family
ID=66880174
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711204964.8A Active CN109840192B (zh) | 2017-11-27 | 2017-11-27 | 自动化测试的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109840192B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110377516A (zh) * | 2019-07-17 | 2019-10-25 | 拉扎斯网络科技(上海)有限公司 | 测试方法、装置、电子设备及计算机可读存储介质 |
CN110515848A (zh) * | 2019-08-29 | 2019-11-29 | 行吟信息科技(上海)有限公司 | 自动化测试系统与自动化测试方法 |
CN110908902A (zh) * | 2019-11-12 | 2020-03-24 | 北京云测信息技术有限公司 | 一种测试步骤的编辑方法、装置及电子设备 |
CN113448847A (zh) * | 2021-06-24 | 2021-09-28 | 新华三大数据技术有限公司 | 一种测试方法及系统 |
WO2023236114A1 (zh) * | 2022-06-08 | 2023-12-14 | 西门子股份公司 | 工业测试脚本生成方法、装置和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541730A (zh) * | 2011-12-08 | 2012-07-04 | 北京空间飞行器总体设计部 | 一种航天器测试脚本语义识别与自动生成方法 |
US9047414B1 (en) * | 2011-03-15 | 2015-06-02 | Symantec Corporation | Method and apparatus for generating automated test case scripts from natural language test cases |
CN104965790A (zh) * | 2015-07-17 | 2015-10-07 | 小米科技有限责任公司 | 基于关键字驱动的软件测试方法及系统 |
CN105608012A (zh) * | 2016-03-10 | 2016-05-25 | 武汉斗鱼网络科技有限公司 | 一种自动化测试方法及系统 |
-
2017
- 2017-11-27 CN CN201711204964.8A patent/CN109840192B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9047414B1 (en) * | 2011-03-15 | 2015-06-02 | Symantec Corporation | Method and apparatus for generating automated test case scripts from natural language test cases |
CN102541730A (zh) * | 2011-12-08 | 2012-07-04 | 北京空间飞行器总体设计部 | 一种航天器测试脚本语义识别与自动生成方法 |
CN104965790A (zh) * | 2015-07-17 | 2015-10-07 | 小米科技有限责任公司 | 基于关键字驱动的软件测试方法及系统 |
CN105608012A (zh) * | 2016-03-10 | 2016-05-25 | 武汉斗鱼网络科技有限公司 | 一种自动化测试方法及系统 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110377516A (zh) * | 2019-07-17 | 2019-10-25 | 拉扎斯网络科技(上海)有限公司 | 测试方法、装置、电子设备及计算机可读存储介质 |
CN110515848A (zh) * | 2019-08-29 | 2019-11-29 | 行吟信息科技(上海)有限公司 | 自动化测试系统与自动化测试方法 |
CN110908902A (zh) * | 2019-11-12 | 2020-03-24 | 北京云测信息技术有限公司 | 一种测试步骤的编辑方法、装置及电子设备 |
CN113448847A (zh) * | 2021-06-24 | 2021-09-28 | 新华三大数据技术有限公司 | 一种测试方法及系统 |
CN113448847B (zh) * | 2021-06-24 | 2024-05-24 | 新华三大数据技术有限公司 | 一种测试方法及系统 |
WO2023236114A1 (zh) * | 2022-06-08 | 2023-12-14 | 西门子股份公司 | 工业测试脚本生成方法、装置和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109840192B (zh) | 2022-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109840192A (zh) | 自动化测试的方法和装置 | |
CN107729319B (zh) | 用于输出信息的方法和装置 | |
CN109460513A (zh) | 用于生成点击率预测模型的方法和装置 | |
CN109145280A (zh) | 信息推送的方法和装置 | |
CN107105031A (zh) | 信息推送方法和装置 | |
CN108804327A (zh) | 一种自动生成测试数据的方法和装置 | |
CN108958992A (zh) | 测试方法和装置 | |
CN112559354A (zh) | 前端代码规范检测方法、装置、计算机设备及存储介质 | |
CN110837356B (zh) | 一种数据处理方法和装置 | |
CN109815107A (zh) | 自动化测试的方法和装置 | |
CN109145014A (zh) | 生成弹性搜索请求的方法和装置 | |
CN106919711A (zh) | 基于人工智能的标注信息的方法和装置 | |
CN109992496A (zh) | 一种用于自动化测试的数据处理方法和装置 | |
CN109002282A (zh) | 一种在web页面开发中实现动画效果的方法和装置 | |
CN110134427A (zh) | 一种生成代码文件的方法和装置 | |
CN109002385A (zh) | 用于数据流系统的压力测试方法和装置 | |
CN108121814A (zh) | 搜索结果排序模型生成方法和装置 | |
CN109976999A (zh) | 测试用例覆盖率的度量方法和度量装置 | |
CN109784407A (zh) | 确定表字段的类型的方法和装置 | |
CN109960212A (zh) | 任务发送方法和装置 | |
CN110399187A (zh) | 一种语言资源的处理方法和装置 | |
CN109992495A (zh) | 接口测试的方法和装置 | |
Devare et al. | AgroFIMS: A tool to enable digital collection of standards-compliant FAIR data | |
CN109857473A (zh) | 一种页面数据的加载方法和装置 | |
US11755455B1 (en) | Detecting and correcting user interface discrepancies |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |