张飞 王亚雄 郭开卫
摘 要:现有的Web测试系统一般分为需求分析、架构设计、编码测试、上线运维等几个阶段,在这种情况下开发需求分析工作至关重要,因为系统一旦开发上线完毕,对系统的任何更改都是一件代价比较昂贵的事情。作为测试系统,其输入的特殊性决定了其需求的多变性,测试接口的多变也使得很难在需求分析阶段就能够对测试接口进行确定。这些外部约束注定了该类系统的开发代价相对其他系统来说比较高昂。针对系统需求多变、接口多变难以确定设计的特点,本文提供一种能够针对命令进行动态编辑、动态选择、动态执行的Web测试系统和Web测试方法来试图在一定程度上解决这些问题。
关键词:动态扩展;Web测试系统;动态编辑;测试方法
Abstract:The existing Web test system is generally divided into several stages,such as requirements analysis,architecture design,coding test,and online operation and maintenance. In this case,it is important to develop the requirements analysis work,because once the system is developed,the system is completed. Any change is a costly thing. As a test system,the input specificity has been determined to be variability of its requirements,and the variety of test interfaces also makes it difficult to determine the test interface during the requirements analysis phase. These external constraints are bound to make the development cost of this type of system relatively high compared to other systems. In view of the changing system requirements and the difficulty of determining the design characteristics of the interface,this document provides a Web test system and Web test method that can dynamically edit,dynamically select,and dynamically execute commands to try to solve these problems to a certain extent.
Keywords:dynamic expansion;Web test system;dynamic editing;test method
0 引 言
在現有技术中,一般的Web测试系统在需求分析阶段就已经确定了系统功能,上线实施后系统就已经固化,如果此时需要进行变更或者新增功能,代价相对比较高昂,极端情况下甚至和重新开发一套全新的测试系统代价相差无几。
1 技术背景
为了解决这种传统的Web测试系统在上线后功能即已固化的问题,本文旨在提供一种能够以较低成本进行在线变更或者新增功能的Web测试系统和Web测试方法。更进一步地,针对系统需求多变、接口多变难以确定设计的特点,本文旨在提供一种能够针对命令进行动态编辑、动态选择、动态执行的Web测试系统和Web测试方法。
2 实现方式
2.1 Web测试系统的构造
本文中的可在线动态扩展的Web测试系统的构造框图包括命令,如图1所示,其特征在于,具备命令编辑装置100、html转换装置200、命令交互装置300、命令持久化检索装置400、命令持久化装置500、命令执行装置600。
其中,命令编辑装置100可由用户对测试命令进行编辑并且通过Web客户端进行展示。用户通过命令编辑装置100进行测试命令的编辑工作(通过Web客户端展示)。命令编辑装置100是一个在持久化设备中的预置命令,该预置命令的特殊之处在于它由系统开发人员默认开发完成,用户可以对其进行二次编辑。命令编辑装置100启动时是经过html转换装置200激活并在Web客户端进行展示的,命令编辑装置100默认提供命令查看、命令编辑、命令执行三个入口功能。另外,用户后续可以通过默认编辑装置对其进行修改和保存生成新的编辑装置。
html转换装置200用于将从所述Web客户端接收到的指令转换生成html页面并交由所述Web客户端(例如Web浏览器)进行展示。具体地,html转换装置200通过Web客户端接收到内部指令后,根据指令内容生成html页面交由Web客户端进行展示。html转换装置200部署在Web客户端(例如 Web浏览器),当Web浏览器在打开运行时需要动态从服务器下载该html转换装置200到本地运行。在本文中,设置为html转换装置200在其初始化完毕后,立即请求运行命令编辑器装置100。
这样,命令编辑装置100和html转换装置200都布置在Web客户端,命令编辑装置100的前置和html转换装置200的前置使得命令编辑装置能够在线更新,优化用户的编辑体验。而且,前置的html转化装置200最大程度地减轻了服务器的运行压力,也兼顾了Web浏览器的兼容性。
命令交互装置300用于将接收到的由所述命令编辑装置编辑的命令进行第一交互处理后转发给下述的命令持久化检索装置,并对反馈回来的命令执行结果进行第二交互处理,其后再反馈至所述Web客户端。具体地,命令交互装置300提供基本的HTTP协议服务,例如包装分析HTTP包。具体地,命令交互装置300在收到客户端的任何请求后,首先进行HTTP解包处理(即第一交互处理),并把收到的命令包转发给下述的命令持久化检索装置400进行处理,等候处理结果,并对处理结果进行HTTP打包处理(即第二交互处理),之后发送给Web客户端,由Web客户端交由HTML转换装置进行转换显示操作。
命令持久化检索装置400用于对接收到的命令进行分析,如果命令是编辑类型的,则将命令脚本存储到下述的命令持久化装置中并获得反馈结果;如果命令是执行类型的,则从下述命令持久化设备中提取命令脚本转交给下述的命令执行装置。
命令持久化设备500用于执行持久化和检索用户编辑的命令。
命令执行装置600用于执行所述命令持久化检索装置发送来的命令脚本,它作为整个系统的数据持久化设备存在。命令执行装置600相对独立,这样,对其升级和改造不影响整个系统的运行状况。
2.2 Web测试系统的使用方法
可在线动态扩展的Web测试方法利用上述的具备命令编辑装置100、html转换装置200、命令交互装置300、命令持久化装置400、持久化装置500以及命令执行装置600的Web测试系统实现。本文中的可在线动态扩展的Web测试方法大致可以分成以下三大步骤:
系统启动步骤:通过Web客户端动态下载html转换装置并激活命令编辑装置,检索命令编辑装置以在Web客户端展现命令编辑装置,获取命令编辑装置的命令列表以使得在Web客户端展现命令列表;
测试命令编辑步骤:利用命令编辑装置编辑命令后,依次通过命令交互装置、命令持久化检索装置发送到命令持久化装置进行处理,命令持久化装置将处理结果依次通过命令持久化检索装置、命令交互装置、html转换装置处理后在命令编辑装置展示命令编辑结果;
测试命令执行步骤:命令编辑装置将执行命令通过命令交互装置发送到命令持久化检索装置,如果该命令是执行类型,则由命令执行装置执行命令,并且将执行结果依次通过命令交互装置、html转换装置处理后在命令编辑装置展示该命令执行结果。
接着,对于系统启动步骤、测试命令编辑步骤、测试命令执行步骤分别进行具体说明。
图2是本文的可在线动态扩展的Web测试方法中系统启动步骤的流程图。所述系统启动步骤包括下述子步骤:
步骤S100:利用Web客户端(也就是图中2中的Web浏览器)动态下载html转换装置到本地运行;
步骤S101:html转换装置200获取命令编辑装置100,即激活命令编辑装置100;
步骤S102:命令交互装置300检索命令编辑装置,并且将检索结果进行HTTP解包处理后发送到命令持久化检索装置400;
步骤S103:命令持久化检索装置400根据检索结果对命令脚本进行存储,并且返回命令编辑脚本到命令交互装置300;
步骤S104:命令交互装置300对返回的命令编辑脚本进行HTTP大包处理后返回到html转换装置200;
步骤S105:html转换装置200将接收到的命令编辑脚本转换成html页面后由Web浏览器进行展示;
步骤S106:用户根据展示的内容利用命令编辑装置100获取命令列表后发送到命令交互装置300;
步骤S107:命令交互装置300将接收到的列表进行HTTP解包处理后发送到命令持久化检索装置400;
步骤S108:命令持久化检索装置400存储命令脚本并返回命令列表脚本到命令交互处理装置300;
步骤S109:命令交互装置300对命令列表脚本进行HTTP打包后发送到html转换装置200;
步骤S110:html转换装置200将接收到的命令列表脚本转换成html页面;
步骤S111:通过Web浏览器展示html页面以展示命令列表。
图3是本文的可在线动态扩展的Web测试方法中测试命令编辑步骤的流程图。所述测试命令编辑流程包括下述子步骤:
步骤S200:命令编辑装置100编辑测试命令并且发送给命令交互装置300;
步骤S201:命令交互装置300对接收到的编辑后的测试命令进行HTTP解包处理后发送到命令持久化检索装置400;
步骤S202:命令持久化检索装置400将收到的测试命令作为持久化命令发送到命令持久化装置500;
步骤S203:命令持久化装置500存储所述持久化结果并反馈持久化结果至命令持久化检索装置400;
步骤S204:命令持久化检索装置400将持久化结果再转发到命令交互装置300;
步骤S205:命令交互装置400对持久化結果进行HTTP打包处理后发送到html转换装置200;步骤S206:html转换装置200根据收到的持久化结果生成html页面后发送回命令编辑装置100并由Web客户端进行展示。
图4是本文的可在线动态扩展的Web测试方法中测试命令执行步骤的流程图。所述测试命令执行步骤包括下述子步骤:
步骤S300:用户利用命令编辑装置100编辑执行命令,并且将执行命令发送到命令交互装置300;
步骤S301:命令交互装置300将接收到的命令进行HTTP解包处理后转发给命令持久化检索装置400;
步骤S302~步骤S305:命令持久化检索装置400对接收到的命令进行分析,如果命令是编辑类型的,则将命令脚本存储到命令持久化装置500(步骤S302)并接收反馈结果(步骤S303),另一方面,如果命令是执行类型的,则从命令持久化装置400中提取命令脚本转交给命令执行装置600(步骤S304),由命令执行装置600执行命令后将命令执行结果反馈至命令交互装置300(步骤S305);
步骤S306:命令交互装置300对反馈回来的命令执行结果进行HTTP打包处理后再反馈至html转换装置200;
步骤S307:html转换装置200根据收到的指令生成html页面后由发送至命令编辑装置100由Web客户端进行展示。
3 结 论
本文所介绍的可在线动态扩展的Web测试系统以及Web测试方法,只需部署一次,所有新增功能都能够动态获取,动态执行。而且,新增响应及时,功能灵活多变,任何命令均可即时在线编辑、在线执行,不需要二次发布。另一方面,前置的html转换装置能够最大程度地减轻服务器的运行压力,也能够兼顾到Web浏览器的兼容性。同时,命令编辑装置的前置以及html转换装置的前置使得命令编辑器能够在线更新,优化用户的编辑体验。另外,命令执行装置相对独立,这样,对其升级和改造就不会影响整个系统的运行。
参考文献:
[1] 干晓鸣.软件自动化测试的合理应用 [J].计算机应用与软件,2010,27(8):172-174+214.
[2] 付晓,杨海根.自动化测试实现研究 [J].中国市场,2016(34):96-98+102.
[3] 易敏捷.软件测试国内外发展现状及趋势研究 [J].电脑知识与技术,2013,9(26):6020-6022.
[4] 徐泊.一种自动化测试系统的辅助测试工具的分析与设计 [D].北京:北京邮电大学,2017.
[5] 田鸿运,刘青凯,成杰,等.一种面向高性能数值模拟软件的自动化测试平台 [J].计算机工程与科学,2017,39(11):1980-1985.
[6] 孙昌爱,金茂忠.基于程序插装的动态测试技术实现 [J].小型微型计算机系统,2001(12):1475-1479.
作者简介:张飞(1981.05-),男,汉族,陕西西安人,本科,中级工程师,研究方向:大数据开发;王亚雄(1985.01-),男,汉族,湖北天门人,本科,中级工程师,研究方向:大数据开发;郭开卫(1981.09-),男,汉族,江西吉安人,本科,高级工程师,研究方向:大数据开发。