基于QTP对Http协议进行数据传输交互的方法

文档序号:10492261阅读:629来源:国知局
基于QTP对Http协议进行数据传输交互的方法
【专利摘要】本发明提供一种基于QTP对Http协议进行数据传输交互的方法,所述方法为:设计一外部脚本和一DLL程序,通过QTP调用所述外部脚本和DLL程序来对Http协议进行数据传输交互;外部脚本对DLL程序中函数进行QTP方式的类封装;所述DLL程序对Http协议的请求以及响应数据获取,并对所获取的数据进行相应的gzip解压;并提供开放可供QTP调用的接口,所述DLL程序将gzip解压的数据内容通过所述接口传输给QTP,使QTP能得到该部分数据内容进行相应的数据验证和数据传输操作。本发明使QTP可对Http协议进行有效支持,并在其实现基础上可以扩展延伸很多自动化设计,也可使QTP不再局限于UI测试。
【专利说明】
基于QTP对Http协议进行数据传输交互的方法
技术领域
[0001]本发明涉及通讯技术领域,尤其涉及一种基于QTP对Http协议进行数据传输交互的方法。
【背景技术】
[0002]自动化执行是指利用惠普HP公司提供的自动化测试工具QuickTestProfess1nal(简称QTP),其实现通过界面UI操作来模拟用户手工操作,并对程序展现的结果数据进行获取从而由代码来验证,该方式可减少用户在回归测试中的工作量,也减少公司在这方面的测试投入。
[0003]存在的缺点:
[0004]1、QTP在自动化测试主要是对软件界面控制进行触发后台功能实现,也支持webservices(系统对外的接口),但对于一些其他网络协议传输数据获取方面没有很好的支持。
[0005]2、QTP采用的VBS脚本虽然可以进行TCP协议传输来实现Http协议,但其本身兼容不是很好,并且对于Http中gz ip数据压缩也无法很好处理。

【发明内容】

[0006]本发明要解决的技术问题,在于提供一种基于QTP对Http协议进行数据传输交互的方法,使QTP可对Http协议进行有效支持,并在其实现基础上可以扩展延伸很多自动化设计,也可使QTP不再局限于UI测试。
[0007]本发明是这样实现的:一种基于QTP对Http协议进行数据传输交互的方法,所述方法为:设计一外部脚本和一 DLL程序,通过QTP调用所述外部脚本和DLL程序来对Http协议进行数据传输交互;
[0008]所述外部脚本对DLL程序中函数进行QTP方式的类封装,并且处理数据传输的实现;
[0009]所述DLL程序对Http协议的请求以及响应数据获取,并对所获取的数据进行相应的gzip解压;并提供开放可供QTP调用的接口,所述DLL程序将gzip解压的数据内容通过所述接口传输给QTP,使QTP能得到该部分数据内容进行相应的数据验证和数据传输操作。
[0010]进一步的,所述DLL程序具体的实现方式为:DLL程序先进行数据初始化,解析网页站点的URL,验证网页站点IP端□是否有效,无效,则结束流程,有效,则验证网页站点URL是否有效,无效,则结束流程,有效,则整理http头与网页站点数据一起向服务器发送请求,判断服务器是否响应;否,则结束流程,是,则获取服务器响应数据,判断获取的响应数据是否需要进行解压,否,则结束流程,是,则数据解压并进行数据格式转换,将数据格式转换为QTP支持的数据格式。
[0011]进一步的,所述将数据格式转换为QTP支持的数据格式,即为将UTF格式转换为ASCLL 和 Unicode 格式。
[0012]进一步的,所述提供开放可供QTP调用的接口,该接口的创建具体为:1)初始化Http多连接容器:1nitial izeHttp容器,该容器为支持多Http连接请求,并使各个请求数据响应不会错乱,需由容器进行管理;
[0013]2)创建Http对象:CreateHttp ;由DLL程序的函数内部创建一个Http对象,并返回该对象在容器中的唯一 ID,后续均由该ID进行请求操作;
[OOM] 3)添加Http头:AddHeader;该Http头为支持不同浏览器或语言所需的Http头,此处将设计为自定义头方式管理;
[0015]4)数据请求:SendHttpRequest;该数据请求为Http主要数据请求,请求时会附带所添加的Http头;
[0016]5)获取服务器响应:GetHttpRequest;该GetHttpRequest是获取HTTP服务器响应数据接口,进行获取/解压/转换操作后,内部保存;
[0017]6)获取服务端响应数据长度以及类容= GetRequestValue/GetRequestValueLength,获取最后保存的接口数据,并返参至QTP参数。
[0018]进一步的,所述外部脚本具体实现方式为:初始化DLL程序中的函数,初始化DLL程序中的容器,创建外部脚本的内部Http对象获取唯一 ID,通过ID封装各个接口并提供给QTP调用。
[0019]本发明具有如下优点:1、可对QTP支持Http协议方面接口测试;
[°02°] 2、可支持对BS(Browser/Server,浏览器/服务器模式)后台ajax(仓Il建交互式网页应用的网页开发技术)这方面的数据进行验证;
[0021 ] 3、可扩展使用QTP进行SQL注入攻击等功能安全验证;
[0022]4、方便QTP对Http请求调用,调用时只需使用QTP方式的装封类接口直接进行http数据请求,不需考虑其具体实现方式。
【附图说明】
[0023]图1为DLL程序具体的实现的流程示意图。
[0024]图2为外部脚本具体实现的流程示意图。
【具体实施方式】
[0025]请参阅图1和图2所示,本发明的一种基于QTP对Http协议进行数据传输交互的方法,所述方法为:设计一外部脚本和一 DLL程序,通过QTP调用所述外部脚本和DLL程序来对Http协议进行数据传输交互;
[0026]所述外部脚本对DLL程序中函数进行QTP方式的类封装,并且处理数据传输的实现;
[0027]所述DLL程序对Http协议的请求以及响应数据获取,并对所获取的数据进行相应的gzip解压;并提供开放可供QTP调用的接口,所述DLL程序将gzip解压的数据内容通过所述接口传输给QTP,使QTP能得到该部分数据内容进行相应的数据验证和数据传输操作。
[0028]其中,所述DLL程序具体的实现方式为:DLL程序先进行数据初始化,解析网页站点的URL,验证网页站点IP端口是否有效,无效,则结束流程,有效,则验证网页站点URL是否有效,无效,则结束流程,有效,则整理http头与网页站点数据一起向服务器发送请求,判断服务器是否响应;否,则结束流程,是,则获取服务器响应数据,判断获取的响应数据是否需要进行解压,否,则结束流程,是,则数据解压并进行数据格式转换,将数据格式转换为QTP支持的数据格式;所述将数据格式转换为QTP支持的数据格式,即为将UTF格式转换为ASCLL和Unicode 格式。
[0029]所述提供开放可供QTP调用的接口,该接口的创建具体为:I)初始化Http多连接容器:Ini tial izeHttp容器,该容器为支持多Http连接请求,并使各个请求数据响应不会错乱,需由容器进行管理;
[0030]2)创建Http对象:CreateHttp ;由DLL程序的函数内部创建一个Http对象,并返回该对象在容器中的唯一 ID,后续均由该ID进行请求操作;
[0031 ] 3)添加Http头:AddHeader ;该Http头为支持不同浏览器或语言所需的Http头,此处将设计为自定义头方式管理;
[0032]4)数据请求:SendHttpRequest;该数据请求为Http主要数据请求,请求时会附带所添加的Http头;
[0033]5)获取服务器响应:GetHttpRequest;该GetHttpRequest是获取HTTP服务器响应数据接口,进行获取/解压/转换操作后,内部保存;
[0034]6)获取服务端响应数据长度以及类容= GetRequestValue/GetRequestValueLength,获取最后保存的接口数据,并返参至QTP参数。
[0035]所述外部脚本具体实现方式为:初始化DLL程序中的函数,初始化DLL程序中的容器,创建外部脚本的内部Http对象获取唯一ID,通过ID封装各个接口并提供给QTP调用。即由QTP代码提供DLL程序以及所连接的URL完成初始化,之后的外部脚本无需特别具体步骤,只需安装上述接口顺序ID后,即可对其他Http接口进行函数封装,来提供给QTP代码调用。
[0036]QTP的调用为:QTP将该封装类添加至项目资源即可将该类实例化调用。
[0037]以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。
【主权项】
1.一种基于QTP对Http协议进行数据传输交互的方法,其特征在于:所述方法为:设计一外部脚本和一 DLL程序,通过QTP调用所述外部脚本和DLL程序来对Http协议进行数据传输交互; 所述外部脚本对DLL程序中函数进行QTP方式的类封装,并且处理数据传输的实现; 所述DLL程序对Http协议的请求以及响应数据获取,并对所获取的数据进行相应的gzip解压;并提供开放可供QTP调用的接口,所述DLL程序将gzip解压的数据内容通过所述接口传输给QTP,使QTP能得到该部分数据内容进行相应的数据验证和数据传输操作。2.根据权利要求1所述的基于QTP对Http协议进行数据传输交互的方法,其特征在于:所述DLL程序具体的实现方式为:DLL程序先进行数据初始化,解析网页站点的URL,验证网页站点IP端口是否有效,无效,则结束流程,有效,则验证网页站点URL是否有效,无效,则结束流程,有效,则整理http头与网页站点数据一起向服务器发送请求,判断服务器是否响应;否,则结束流程,是,则获取服务器响应数据,判断获取的响应数据是否需要进行解压,否,则结束流程,是,则数据解压并进行数据格式转换,将数据格式转换为QTP支持的数据格式。3.根据权利要求1所述的基于QTP对Http协议进行数据传输交互的方法,其特征在于:所述将数据格式转换为QTP支持的数据格式,即为将UTF格式转换为ASCLL和Unicode格式。4.根据权利要求1所述的基于QTP对Http协议进行数据传输交互的方法,其特征在于:所述提供开放可供QTP调用的接口,该接口的创建具体为:.1)初始化Http多连接容器:Ini tial izeHttp容器,该容器为支持多Http连接请求,并使各个请求数据响应不会错乱,需由容器进行管理; .2)创建Http对象:CreateHttp;由DLL程序的函数内部创建一个Http对象,并返回该对象在容器中的唯一 ID,后续均由该ID进行请求操作; .3)添加Http头:AddHeader;该Http头为支持不同浏览器或语言所需的Http头,此处将设计为自定义头方式管理; .4)数据请求:SendHttpRequest;该数据请求为Http主要数据请求,请求时会附带所添加的Http头; .5)获取服务器响应:GetHttpRequest;该GetHttpRequest是获取HTTP服务器响应数据接口,进行获取/解压/转换操作后,内部保存; .6)获取服务端响应数据长度以及类容:GetRequestValue/GetRequestValueLength,获取最后保存的接口数据,并返参至QTP参数。5.根据权利要求1所述的基于QTP对Http协议进行数据传输交互的方法,其特征在于:所述外部脚本具体实现方式为:初始化DLL程序中的函数,初始化DLL程序中的容器,创建外部脚本的内部Http对象获取唯一 ID,通过ID封装各个接口并提供给QTP调用。
【文档编号】H04L29/08GK105847328SQ201610145198
【公开日】2016年8月10日
【申请日】2016年3月15日
【发明人】陈铎, 徐品, 高锦云, 乐惠丽, 陈建灵, 杨烨
【申请人】福建星海通信科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1