发明名称 一种基于单子技术的Web服务测试数据自动生成方法
摘要 一种基于单子技术的Web服务测试数据自动生成方法主要解决Web服务测试所面临的动态灵活性和可组合重用性的挑战。最主要的是测试用例的单子表示、测试用例的自动生成和Web服务测试的运行这三个部分。具体表现为解析WSDL文档,从其Schema中获得相关输入类型信息,再通过函数makeTestCase自动获得某个服务操作的测试用例,最后将其打包成HTTP包发送给服务端,服务端对HTTP包中的SOAP消息进行解析并返回调用服务的结果。经大量实验数据检验证明本专利的技术1.能根据WSDL正确发送SOAP测试消息并获取返回信息,同时能自动生成其中的测试数据;2.测试时间和测试功率方面比以往的技术更具有优势。
申请公布号 CN102710460B 申请公布日期 2015.03.04
申请号 CN201210147994.0 申请日期 2012.05.14
申请人 南京邮电大学 发明人 张迎周;顾帅帅;符炜;张卫丰;周国强;邹德国;王参参;陈丽洁
分类号 H04L12/26(2006.01)I 主分类号 H04L12/26(2006.01)I
代理机构 南京经纬专利商标代理有限公司 32200 代理人 叶连生
主权项 一种基于单子技术的Web服务测试数据自动生成方法,其特征在于该方法能自动生成基于互联网Web服务所需要的某些特定输入类型的测试用例,该方法包含的步骤如下:1).Web服务描述文档WSDL的解析:解析WSDL,生成简单对象访问协议SOAP消息中两个必要元素<envelope>和<body>;其中<envelope>元素的属性值由WSDL中Schema元素的命名空间属性直接获得,其中Schema负责定义和描述文档的结构和内容模式,这里的文档XML是一种元标记语言,用来描述数据的;<body>元素的子结构主要由对应的服务操作名及其相应的类型结构信息组成;2).服务类型信息的获取:解析WSDL文档,从其中的Schema元素中收集服务的类型描述信息,并表示成测试数据TestData类型,再用哈希表XsdTable表示最终的Schema所有类型信息;其中除了包含基本简单类型外,还允许用户自定义简单类型,以便生成符合特殊要求的测试用例数据;3).构造与服务输入类型相应的XML文档:根据哈希表XsdTable及哈斯卡服务页面单子HSP,给出函数testDataToXml,通过此函数能从一个服务的输入类型生成相应的XML结构文档;4).自动生成相应的测试用例:根据类型信息,输入类型的XML文档和服务操作名以及从Schema中获取的<envelope>元素的属性值,给出函数makeTestCase来为服务操作自动生成相应的测试用例,并根据WSDL中服务输入类型进行预期返回结果,自动生成XML框架;5).SOAP消息的封装:在Web服务测试用例之上加载相关的超文本传输协议HTTP的包头信息,其中包括服务请求地址SOAPAction头、包头长度和发送地址,之后将其封装成一个HTTP包,然后将之发送给服务端;6).SOAP消息的解析:服务端对HTTP包中的SOAP消息进行解析并返回调用服务器的反馈信息,包括访问是否成功和解析Socket包,其中Socket包中包含服务请求地址信息和发送地址信息,并获取反馈消息的相关内容;7).生成服务自动测试描述函数:结合HSP单子,使用根据简单对象访问协议SOAP机制定义的服务调用函数soapCall,并根据Web服务能够接收的XML文件的根式,在使用SOAPCall的过程中,利用能把所生成的测试用例以文件的形式保存的appendFile函数(追加文件内容函数)和能输出服务调用后反馈的相关结构的putstrLn函数(输出文件内容函数)的功能,最终得到服务自动测试描述函数;8).Web服务自动测试的运行:将服务自动测试描述函数直接作为能随机产生相应类型值的Gen单子中接口函数QuickCheck的输入,从而可进行Web服务自动测试;9).特殊服务类型数据的生成:接口函数QuickCheck根据参数中所含的生成器,随机生成若干数据进行测试;此外,如果QuickCheck函数输入参数是个函数f,则QuickCheck函数先利用Gen单子给出f参数类型的生成器,再进行批量测试;客户也可以根据需要重新设计这些数据生成器,并辅助使用Gen单子中所提供的生成器函数;10)测试用例类型约束:根据上述Gen单子所提供的类型生成器,通过相应的调整,来使测试数据生成器满足WSDL描述中字符串数据类型,包括长度、最大长度和最小长度,以及数值型数据类型相关约束,即最大范围、最小范围;11).测试属性函数的组合描述:QuickCheck函数最后还提供了一些能将测试属性函数组合起来的描述方法,即条件约束函数、测试数据分类与统计函数,这些函数能辅助更好地进行Web服务测试用例的生成与分析。
地址 210003 江苏省南京市新模范马路66号