[发明专利]一种软件自动化测试系统及方法有效
申请号: | 201110362976.X | 申请日: | 2011-11-16 |
公开(公告)号: | CN102521120A | 公开(公告)日: | 2012-06-27 |
发明(设计)人: | 周海旭 | 申请(专利权)人: | 中国民航信息网络股份有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京瑞思知识产权代理事务所(普通合伙) 11341 | 代理人: | 李涛 |
地址: | 100010 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 软件 自动化 测试 系统 方法 | ||
1.一种基于图形视图的软件自动化测试系统,其特征在于包括:脚本编辑模块、场景组织模块、参数化模块、调试和运行模块、测试报告输出模块。
2.根据权利要求1所述的软件自动化测试系统,其中,
所述脚本编辑模块提供一个标准的文本编辑界面,借此能够快捷输入自动化测试常用函数;
所述脚本编辑模块允许用户使用复制粘贴或拖放的方式在脚本中加入图片,通过脚本编辑模块能够快速截图,使得脚本中图像片段的获取、存储和处理更加方便。
3.根据权利要求1所述的软件自动化测试系统,其中,所述的场景组织模块提供一个用于搭建测试场景的图形视图界面,借此创建多种图形元素,并且能够拖动、复制、剪切、粘贴、删除该图形元素,还能够将多个图形元素用有向连线连接起来,从而构成一个完整的测试过程;
所述场景组织模块的核心父类是Qt中的QGraphicsScene类。
4.根据权利要求1所述的软件自动化测试系统,其中,所述的参数化模块提供参数表格编辑界面,借此进行参数信息导入、导出、循环次数设定、参数表格规模设定;
所述参数化模块的核心父类是Qt中QTextTable类。
5.根据权利要求1所述的软件自动化测试系统,其中,所述的调试和运行模块能够整合处理场景中的脚本信息,生成Python脚本文件和图片文件,并调用外部接口运行脚本。
6.根据权利要求1所述的软件自动化测试系统,其中,所述的测试报告输出模块提供输出测试结果的专用函数,并依据用户的需要生成HTML 格式的测试报告文件和文本格式的测试脚本运行日志文件;
所述测试报告输出模块具有维护框架平台的日志文件的功能。
7.一种基于图形视图的软件自动化测试方法,其特征在于包括如下步骤:
步骤1,场景组织模块进行业务流分解;
步骤2,脚本编辑模块开发业务节点;
步骤3,场景组织模块构建业务流;
步骤4,对脚本进行必要的参数化;
步骤5,调试和运行模块调试运行业务流;
步骤6,测试报告输出模块输出测试报告。
8.根据权利要求7所述的软件自动化测试方法,其中,
在所述步骤1中,为了提高脚本的复用性,或是为了实现协作式开发,首先通过场景组织模块,把一个业务流程分解为N个步骤,每个步骤用一个业务节点来封装和实现;分解的策略和颗粒度完全由用户根据实际需要决定;
在所述步骤2中,在测试场景中加入业务节点,在脚本编辑模块提供的脚本编辑界面上开发可视化测试脚本;
在所述步骤3中,在场景组织模块提供的图形视图界面中将多个业务节点用有向连线连接起来,从而构建一个完整的业务流;
在所述步骤4中,根据测试的需要,使用参数化模块对脚本进行必要的参数化,即,在测试场景中绘制一个循环体,通过缩放、移动操作调整其覆盖范围,将与参数化有关的业务节点包含在这一范围内;然后在打开的参数表格编辑界面编辑各个参数的名称和取值;最后修改业务节点中的脚本,将需要参数化的常量替换为参数名;
在所述步骤5中,运行整个业务流,调试和运行模块将业务流中各个业务节点的脚本信息整合起来,加入API函数定义、Python模块引入、异常处理信息,生成临时脚本文件和临时图片文件,然后调用SIKULI脚本运行接口来执行脚本;
在所述步骤6中,所述测试报告输出模块将根据用户需要生成一份HTML格式的测试报告,将脚本中报告函数定义的测试结果信息打印到测试报告中。
9.根据权利要求8所述的软件自动化测试方法,其中,
在所述步骤2中,所述脚本遵循Python 2.5格式规范,在脚本中使用任何Python 2.5支持的系统函数或纯Python模块;所述脚本编辑模块在SIKULI API的基础上扩展了一批自动化测试专用函数,形成了独有的一套API,其中的所有函数均在脚本编辑界面上以快捷方式的形式列出,双击鼠标即可在脚本中加入指定的函数;在使用SIKULI API函数的时候,将硬盘中的图片文件复制粘贴、拖动到脚本中作为函数的参数;或者将其它格式文档中的图像片段以复制粘贴的方式插入到脚本中;所述脚本编辑模块能够快速截图,所述脚本编辑模块的核心父类是Qt中的QTextEdit类;
在所述步骤3中,所述场景组织模块的核心父类是Qt中用于组织二维图元的QGraphicsScene类;场景中的业务节点、有向连线、循环体等的核心父类是Qt中的QGraphicsItem类;
在所述步骤4中,参数化模块中表达参数表格的核心父类是Qt中QTextTable类;为了实现循环嵌套,每一个业务节点对象中都有一个循环体列表,记录该业务节点在哪些循环体范围内;在生成可执行的Python脚本时,调试和运行模块将根据各个业务节点的循环体列表计算出循环的作用范围,确定语句的缩进量,并在Python脚本中加入FOR循环结构。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国民航信息网络股份有限公司,未经中国民航信息网络股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110362976.X/1.html,转载请声明来源钻瓜专利网。
- 上一篇:基于硬件虚拟化的密码保护系统
- 下一篇:一种不间断固晶机进料系统