CN110765012A - 一种自动化测试脚本生成及解析执行方法 - Google Patents

一种自动化测试脚本生成及解析执行方法 Download PDF

Info

Publication number
CN110765012A
CN110765012A CN201910980195.3A CN201910980195A CN110765012A CN 110765012 A CN110765012 A CN 110765012A CN 201910980195 A CN201910980195 A CN 201910980195A CN 110765012 A CN110765012 A CN 110765012A
Authority
CN
China
Prior art keywords
script
item
action
command
line
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
Application number
CN201910980195.3A
Other languages
English (en)
Inventor
李海宁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Xin'an Century Polytron Technologies Inc
Original Assignee
Beijing Xin'an Century Polytron Technologies Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Xin'an Century Polytron Technologies Inc filed Critical Beijing Xin'an Century Polytron Technologies Inc
Priority to CN201910980195.3A priority Critical patent/CN110765012A/zh
Publication of CN110765012A publication Critical patent/CN110765012A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

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)
  • Stored Programmes (AREA)

Abstract

本发明提出了一种自动化测试脚本生成及解析执行方法,包括:设置测试脚本格式文件,测试脚本格式文件包括:动作项、对象项、数值项和等待项,其中,动作项用于设定软件操作动作;对象项用于设定需要被操作的界面控件元素,数值项用于设定向控件元素中发送的值;等待项用于设定等待执行动作的最大时长;接收测试命令;对测试命令进行解析;将解析结果与脚本格式文件的各项进行对应,根据动作和定位值,查找到界面控件元素并执行相应的动作。本发明无需掌握任何任何编程语言即可编写出自动化测试脚本,脚本解析执行器负责解析脚本,并根据脚本执行相应的动作。并且本发明可用于自动化测试及其它需要实现机器自动执行的场景。

Description

一种自动化测试脚本生成及解析执行方法
技术领域
本发明涉及脚本测试技术领域,特别涉及一种自动化测试脚本生成及解析执行方法。
背景技术
自动化测试脚本及技术除用于自动化测试本身外,也可运用于给用户带来便利的自动化一键登录的实现,当然也可以被运用于不被提倡的行为如秒杀、抢票、论坛自 动注册,灌水等等场景。
现有的自动化测试应用系统时,都需要事先进行脚本编写。这些脚本大多数采用C++、java、python、Perl,Python、PHP等编程语言编写。对于测试人员来说,各种自 动化测试框架要求有自己的编程语言,要掌握这些编程语言难度较大,且脚本语法也 各不相同,脚本编写复杂,不利于测试人员学习和掌握。
发明内容
本发明的目的旨在至少解决所述技术缺陷之一。
为此,本发明的目的在于提出一种自动化测试脚本生成及解析执行方法。
为了实现上述目的,本发明的实施例提供一种自动化测试脚本生成及解析执行方法, 包括如下步骤:
步骤S1,设置测试脚本格式文件,所述测试脚本格式文件包括:动作项、对象项、数值项和等待项,其中,所述动作项用于设定软件操作动作;所述对象项用于设定需要被操作的界面控件元素,所述数值项用于设定向所述控件元素中发送的值;所述等待项用于设定等待执行动作的最大时长;
步骤S2,接收测试命令;
步骤S3,对所述测试命令进行解析;其中,命令解析的过程如下:
首先通过命令接收模块接收到脚本,对传入的脚本进行解码,解码得到原始文本的脚 本后,根据换行符,逐行的读取脚本,脚本全部读取之后,过滤掉带预设符号号的注释, 截掉首尾存在的空格,再对每行脚本使用正则表达式,对行命令进行分词,分成固定列宽 的二维数组;
步骤S4,将步骤S3的解析结果与步骤S1中的脚本格式文件的各项进行对应,根据动 作和定位值,查找到界面控件元素并执行相应的动作;
执行时,按解析出来的二维数组按顺序逐行执行,打开浏览器,获取到“OPEN”动作关键字后,通过命令行中的“窗口类型”的值,判断当前需要打开的浏览器类型,检查对 应的浏览器驱动是否已经下载,如果没有下载,则直接返回错误码,表示没有相应的浏览 器驱动;否则打开命令行中给出的”URL”值;
继续循环逐行读取命令行,直至全部命令行执行完成;一行命令开始执行时,首先获 取命令关键字,根据命令行,执行相应的命令。
进一步,所述动作项包括:打开程序、发送键盘事件、执行鼠标双击事件、提交、选中、不选中、执行JS脚本、清空对象中的值、延迟。
进一步,所述动作项还包括:判断执行是否成功、判断执行是否失败。
进一步,所述对象项中的每个界面控件元素包括:定位类型和定位值,其中,所述定 位类型包括:ID、输入名称、标签的class名称、标签名、链接文本、元素定位法、判断 窗口是否出现。
进一步,所述数值项中的每个值包括:关键字和变量。
进一步,在等待项的最大时长范围内,如果界面控件元素已经出现,则立刻执行动作; 如果等待时间超过最大时长,界面控件元素还未加载,则不做任何动作。
进一步,步骤S2至步骤S4的执行程序打包为脚本执行器,安装在本地,并且该脚本执行器与被测程序位于同一个操作系统中。
进一步,所述步骤S2采用本地SDK或对外接服务接口形式接收所述测试命令。
进一步,在所述步骤S3中,对所述测试命令进行解析,包括:将所述测试命令按照行 和列进行分拆形成二维数组。
根据本发明实施例的自动化测试脚本生成及解析执行方法,设置简单易用的自动测试 脚本格式及配套的脚本解析执行器,采用固定格式的指令形式,简单易理解,需要简单了 解脚本的格式及指令含义,即可快速编写。无需掌握任何任何编程语言即可编写出自动化 测试脚本,脚本解析执行器负责解析脚本,并根据脚本执行相应的动作。并且本发明可用 于自动化测试及其它需要实现机器自动执行的场景中。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显 和容易理解,其中:
图1为根据本发明实施例的自动化测试脚本生成及解析执行方法的流程图;
图2为根据本发明实施例的对测试命令进行解析的流程图;
图3为根据本发明实施例的据动作和定位值,查找到界面控件元素并执行相应的动作 的流程图。
具体实施方式
下面详细描述本发明的实施例,实施例的示例在附图中示出,其中自始至终相同或类 似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描 述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
如图1所示,本发明实施例的自动化测试脚本生成及解析执行方法,包括如下步骤:
步骤S1,设置测试脚本格式文件,测试脚本格式文件包括:动作项、对象项、数 值项和等待项,如表1所示。
表1
Figure BDA0002234939740000031
(1)动作项用于设定软件操作动作。
动作项包括:打开程序、发送键盘事件、执行鼠标双击事件、提交、选中、不选 中、执行JS脚本、清空对象中的值、延迟。
此外,动作项还包括:判断执行是否成功、判断执行是否失败。即,脚本还设计 有判断执行成功及失败的功能,动作“ISSUCCESS“表示判断执行是否成功,通过窗口 标题、窗口地址、程序界面中出现的某控件元素及值等,只要出现即表示执行成功。 同理,动作“ISFAIL“表示判断执行是否失败,通过窗口标题、窗口地址、程序界面 中出现的某控件元素及值等,只要出现即表示执行失败。
表2示出了动作项含义说明。
表2
Figure RE-GDA0002303120100000041
在本发明的实施例中,OPEN动作时,需要指定打开的程序窗口,程序窗口类型见表3。
表3
含义
IE IE浏览器
CHROME Chrome浏览器
FIREFOX 火狐浏览器
DEFAULT 默认为操作系统默认浏览器
APPLICTION 桌面应用程序
(2)对象项用于设定需要被操作的界面控件元素。
对象为需要被操作的界面控件元素,如一个按钮、一个文件框、一个菜单、一个 下拉框等等。脚本中需要能够定位到这些控件元素。对象项中的每个界面控件元素包 括:定位类型和定位值,例如ID为”username”的Input输入框,其定位型类型为“ID”、 定位值为“username”。其中,定位类型包括:ID、输入名称、标签的class名称、 标签名、链接文本、元素定位法、判断窗口是否出现。表4示出了定位类型的说明。
表4
Figure BDA0002234939740000051
(3)数值项用于设定向控件元素中发送的值。
数值项中的每个值包括:关键字和变量VAULE。例如,给一个用户名密码框中自动填入账号为“zhangsan“,则值的部分写法为“VALUE zhangsan”。“值”并不是必 须的,在某些情况下无需给出值,如双击按钮动作,只是单纯执行双击动作,而无需 填入任何值。
(4)等待项用于设定等待执行动作的最大时长。
设置等待项是为防止界面上控件元素加载慢而使动作执行不成功而设计的。在等待项的最大时长范围内,如果界面控件元素已经出现,则立刻执行动作;如果等待时 间超过最大时长,界面控件元素还未加载,则不做任何动作。
表5为对动作项、对象项、数值项和等待项设置的一个具体示例。
表5
Figure BDA0002234939740000052
下面需要说明的是,下述步骤S2至步骤S4的执行程序打包为脚本执行器,安装在本 地,并且该脚本执行器与被测程序位于同一个操作系统中。
步骤S2,接收测试命令。
在本发明的实施例中,步骤S2采用本地SDK或对外接服务接口形式接收测试命令。
步骤S3,对测试命令进行解析。
对测试命令进行解析,包括:将测试命令按照行和列进行分拆形成二维数组。
具体的,如图2所示,命令解析的过程如下:
首先通过命令接收模块接收到脚本。传入的脚本约定为base64编码后的文本,因此首 先需要进行解码。解码得到原始文本的脚本后,根据换行符,逐行的读取脚本。脚本全部 读取之后,过滤掉带预设符号(例如“#”号)的注释,截掉首尾可能存在的空格。再对 每行脚本使用正则表达式,对行命令进行分词,分成固定列宽的二维数组。例如,分成为 7列的格式如表1的二维数组。
步骤S4,将步骤S3的解析结果与步骤S1中的脚本格式文件的各项进行对应,根据动 作和定位值(如表1所述),查找到界面控件元素并执行相应的动作。
具体的,如图3所示,执行时,按解析出来的二维数组按顺序逐行执行,一般第一行命令都是先打开浏览器。获取到“OPEN”动作关键字后,通过命令行中的“窗口类型”的 值,判断当前需要打开的浏览器类型。检查对应的浏览器驱动是否已经下载,如果没有下 载,则直接返回错误码,表示没有相应的浏览器驱动。否则打开命令行中给出的”URL”值。
继续循环逐行读取命令行,直至全部命令行执行完成。一行命令开始执行时,首先获 取命令关键字,所有的关键字见表1的“动作”列。根据命令行,执行相应的命令,如命 令行“SENDKEY ID wpName1 VALUE lihn“表示发送值”lihn“到元素ID为“wpName1”的 UI元素中。
根据本发明实施例的自动化测试脚本生成及解析执行方法,设置简单易用的自动测试 脚本格式及配套的脚本解析执行器,采用固定格式的指令形式,简单易理解,需要简单了 解脚本的格式及指令含义,即可快速编写。无需掌握任何任何编程语言即可编写出自动化 测试脚本,脚本解析执行器负责解析脚本,并根据脚本执行相应的动作。并且本发明可用 于自动化测试及其它需要实现机器自动执行的场景中。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者 特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述 不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在 任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的, 不能理解为对本发明的限制,本领域的普通技术人员在不脱离本发明的原理和宗旨的情况 下在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。本发明的范围由所 附权利要求及其等同限定。

Claims (9)

1.一种自动化测试脚本生成及解析执行方法,其特征在于,包括如下步骤:
步骤S1,设置测试脚本格式文件,所述测试脚本格式文件包括:动作项、对象项、数值项和等待项,其中,所述动作项用于设定软件操作动作;所述对象项用于设定需要被操作的界面控件元素,所述数值项用于设定向所述控件元素中发送的值;所述等待项用于设定等待执行动作的最大时长;
步骤S2,接收测试命令;
步骤S3,对所述测试命令进行解析;其中,命令解析的过程如下:
首先通过命令接收模块接收到脚本,对传入的脚本进行解码,解码得到原始文本的脚本后,根据换行符,逐行的读取脚本,脚本全部读取之后,过滤掉带预设符号号的注释,截掉首尾存在的空格,再对每行脚本使用正则表达式,对行命令进行分词,分成固定列宽的二维数组;
步骤S4,将步骤S3的解析结果与步骤S1中的脚本格式文件的各项进行对应,根据动作和定位值,查找到界面控件元素并执行相应的动作;
执行时,按解析出来的二维数组按顺序逐行执行,打开浏览器,获取到“OPEN”动作关键字后,通过命令行中的“窗口类型”的值,判断当前需要打开的浏览器类型,检查对应的浏览器驱动是否已经下载,如果没有下载,则直接返回错误码,表示没有相应的浏览器驱动;否则打开命令行中给出的”URL”值;
继续循环逐行读取命令行,直至全部命令行执行完成;一行命令开始执行时,首先获取命令关键字,根据命令行,执行相应的命令。
2.如权利要求1所述的自动化测试脚本生成及解析执行方法,其特征在于,所述动作项包括:打开程序、发送键盘事件、执行鼠标双击事件、提交、选中、不选中、执行JS脚本、清空对象中的值、延迟。
3.如权利要求1所述的自动化测试脚本生成及解析执行方法,其特征在于,所述动作项还包括:判断执行是否成功、判断执行是否失败。
4.如权利要求1所述的自动化测试脚本生成及解析执行方法,其特征在于,所述对象项中的每个界面控件元素包括:定位类型和定位值,其中,所述定位类型包括:ID、输入名称、标签的class名称、标签名、链接文本、元素定位法、判断窗口是否出现。
5.如权利要求1所述的自动化测试脚本生成及解析执行方法,其特征在于,所述数值项中的每个值包括:关键字和变量。
6.如权利要求1所述的自动化测试脚本生成及解析执行方法,其特征在于,在等待项的最大时长范围内,如果界面控件元素已经出现,则立刻执行动作;如果等待时间超过最大时长,界面控件元素还未加载,则不做任何动作。
7.如权利要求1所述的自动化测试脚本生成及解析执行方法,其特征在于,步骤S2至步骤S4的执行程序打包为脚本执行器,安装在本地,并且该脚本执行器与被测程序位于同一个操作系统中。
8.如权利要求1所述的自动化测试脚本生成及解析执行方法,其特征在于,所述步骤S2采用本地SDK或对外接服务接口形式接收所述测试命令。
9.如权利要求1所述的自动化测试脚本生成及解析执行方法,其特征在于,在所述步骤S3中,对所述测试命令进行解析,包括:将所述测试命令按照行和列进行分拆形成二维数组。
CN201910980195.3A 2019-10-15 2019-10-15 一种自动化测试脚本生成及解析执行方法 Pending CN110765012A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910980195.3A CN110765012A (zh) 2019-10-15 2019-10-15 一种自动化测试脚本生成及解析执行方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910980195.3A CN110765012A (zh) 2019-10-15 2019-10-15 一种自动化测试脚本生成及解析执行方法

Publications (1)

Publication Number Publication Date
CN110765012A true CN110765012A (zh) 2020-02-07

Family

ID=69331921

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910980195.3A Pending CN110765012A (zh) 2019-10-15 2019-10-15 一种自动化测试脚本生成及解析执行方法

Country Status (1)

Country Link
CN (1) CN110765012A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111831551A (zh) * 2020-06-05 2020-10-27 厦门亿联网络技术股份有限公司 一种非阻塞式嵌入式软件测试方法、装置及存储介质
CN112631938A (zh) * 2020-12-31 2021-04-09 北京弘远博学科技有限公司 一种自动化回归测试的方法
CN113268412A (zh) * 2021-04-30 2021-08-17 摩尔元数(厦门)科技有限公司 Web系统测试用例录制的控件解析方法、装置、设备和介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101150463A (zh) * 2007-11-14 2008-03-26 华为技术有限公司 测试方法和系统
CN102541730A (zh) * 2011-12-08 2012-07-04 北京空间飞行器总体设计部 一种航天器测试脚本语义识别与自动生成方法
CN104484269A (zh) * 2014-11-27 2015-04-01 北京广利核系统工程有限公司 一种自动生成测试脚本的方法
CN104539487A (zh) * 2015-01-20 2015-04-22 成都益联科创科技有限公司 一种基于云平台的系统测试及可靠性评估方法
US9047414B1 (en) * 2011-03-15 2015-06-02 Symantec Corporation Method and apparatus for generating automated test case scripts from natural language test cases
US20160147645A1 (en) * 2014-11-20 2016-05-26 Accenture Global Services Limited Automated testing of web-based applications
CN108347358A (zh) * 2017-01-23 2018-07-31 埃森哲环球解决方案有限公司 云连接的自动化测试
CN109460368A (zh) * 2018-11-22 2019-03-12 北京同有飞骥科技股份有限公司 基于语法转换的自动测试方法、装置及存储介质
CN109800164A (zh) * 2019-01-03 2019-05-24 郑州云海信息技术有限公司 一种软件自动化测试方法及测试平台

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101150463A (zh) * 2007-11-14 2008-03-26 华为技术有限公司 测试方法和系统
WO2009062419A1 (fr) * 2007-11-14 2009-05-22 Huawei Technologies Co., Ltd. Système et procédé de test
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 北京空间飞行器总体设计部 一种航天器测试脚本语义识别与自动生成方法
US20160147645A1 (en) * 2014-11-20 2016-05-26 Accenture Global Services Limited Automated testing of web-based applications
CN104484269A (zh) * 2014-11-27 2015-04-01 北京广利核系统工程有限公司 一种自动生成测试脚本的方法
CN104539487A (zh) * 2015-01-20 2015-04-22 成都益联科创科技有限公司 一种基于云平台的系统测试及可靠性评估方法
CN108347358A (zh) * 2017-01-23 2018-07-31 埃森哲环球解决方案有限公司 云连接的自动化测试
CN109460368A (zh) * 2018-11-22 2019-03-12 北京同有飞骥科技股份有限公司 基于语法转换的自动测试方法、装置及存储介质
CN109800164A (zh) * 2019-01-03 2019-05-24 郑州云海信息技术有限公司 一种软件自动化测试方法及测试平台

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111831551A (zh) * 2020-06-05 2020-10-27 厦门亿联网络技术股份有限公司 一种非阻塞式嵌入式软件测试方法、装置及存储介质
CN111831551B (zh) * 2020-06-05 2022-05-17 厦门亿联网络技术股份有限公司 一种非阻塞式嵌入式软件测试方法、装置及存储介质
CN112631938A (zh) * 2020-12-31 2021-04-09 北京弘远博学科技有限公司 一种自动化回归测试的方法
CN112631938B (zh) * 2020-12-31 2024-02-09 北京弘远博学科技有限公司 一种自动化回归测试的方法
CN113268412A (zh) * 2021-04-30 2021-08-17 摩尔元数(厦门)科技有限公司 Web系统测试用例录制的控件解析方法、装置、设备和介质

Similar Documents

Publication Publication Date Title
US11099972B2 (en) Testing user interfaces using machine vision
KR0125774B1 (ko) 대화형 소프트웨어 애플리케이션내 텍스트 필드의 번역을 용이하게 하기 위한 방법 및 그를 포함하는 데이터 처리 시스템
US7100150B2 (en) Method and apparatus for testing embedded examples in GUI documentation
US6421822B1 (en) Graphical user interface for developing test cases using a test object library
US6332211B1 (en) System and method for developing test cases using a test object library
US8881105B2 (en) Test case manager
CN110765012A (zh) 一种自动化测试脚本生成及解析执行方法
US8875103B2 (en) Method of testing multiple language versions of a software system using one test script
US20080127103A1 (en) Dynamic deneration and implementation of globalization verification testing for user interface controls
CN105446874B (zh) 一种资源配置文件的检测方法和装置
US20110144972A1 (en) Method and System for Generating a Localized Software Product
WO2014114131A1 (en) Method and apparatus for testing browser compatibility
US20230229587A1 (en) Automation Testing Tool Framework
US20210294599A1 (en) Providing code editor documentation pages using a lightweight text formatting language and platform-agnostic command links
US10963274B2 (en) Dynamic help system using HTML based application framework
US11726803B2 (en) Artificial intelligence based systems and methods for autonomously generating customer service help guides with integrated graphical components and for autonomously error-checking knowledge base support resources
WO2021061185A1 (en) Test automation of application
US20100095279A1 (en) Method for automatically testing menu items of application software
CN113157554A (zh) 一种软件自动化做题测试方法以及相关设备
CN110727591A (zh) 一种基于建模页面自动化测试方法
JP2016194787A (ja) ソフトウェア試験装置、ソフトウェア試験方法及びソフトウェア試験用プログラム
KR102095703B1 (ko) 마크업 파싱 장치, 방법 및 기록 매체
CN113761402A (zh) 一种链接调试方法、装置、设备和存储介质
CN116361193B (zh) 版式文档文本选择的测试方法及装置
CN113138926B (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20200207

RJ01 Rejection of invention patent application after publication