软件压力测试用数据提供方法及系统与流程

文档序号:11154865阅读:351来源:国知局
软件压力测试用数据提供方法及系统与制造工艺

本发明涉及软件测试技术领域,尤其涉及一种软件压力测试用数据提供方法及系统。



背景技术:

随着计算机软件工业的发展,对软件的进行压力测试越来越成为行内普遍的做法,在进行软件的压力测试时,需要使用大量的数据来驱动测试,但是目前普遍使用简单的编码为压力测试系统提供测试用参数,由于需要人工编码产生测试用参数工作量大,而且由于测试时的局限性,所得的测试用参数与现实场景的参数不一致,而且生成的测试用参数质量不高,不能帮助在测试时发现问题。



技术实现要素:

本发明的主要目的在于提供一种软件压力测试用数据提供方法及系统,旨在减小为软件压力测试系统提供高质量的参数的工作量。

为实现上述目的,本发明提供一种软件压力测试用数据提供方法,所述软件压力测试用数据提供方法包括以下步骤:

获取生产机器运行运营程序时所产生的流量;

根据所述流量生成测试用参数,并存储所述测试用参数;

根据接收到的由测试系统发送的获取所述测试用参数的请求,发送所述测试用参数至所述测试系统。

优选地,所述根据所述流量生成测试用参数,并存储所述测试用参数包括:

获取所述流量中的原始请求和原始响应;

屏蔽所述原始请求或所述原始响应中的敏感信息;

根据所述原始请求或所述原始响应生成所述测试用参数;

保存所述测试用参数。

优选地,所述保存所述测试用参数包括:

为所述测试用参数生成特征码,所述特征码用于区别所述测试用参数的类别;

存储所述特征码和所述测试用参数至数据库。

优选地,所述根据接收到的由测试系统发送的获取所述测试用参数的请求,发送所述测试用参数至所述测试系统包括:

接收到所述请求,所述请求包括所述特征码;

在所述数据库中查询所有包括所述特征码的测试用参数;

发送所述查询结果至所述测试系统。

优选地,所述获取生产机器运行运营程序时所产生的流量包括:

当在第一预设时间时,实时获取构成所述流量的流量包;

在一预设时间段后,停止获取所述生产机的流量。

此外还提供一种软件压力测试用数据提供系统,所述软件压力测试用数据提供系统包括:

获取模块,用于获取生产机器运行运营程序时所产生的流量;

存储模块,用于根据所述流量生成测试用参数,并存储所述测试用参数;

发送模块,用于根据接收到的由测试系统发送的获取所述测试用参数的请求,发送所述测试用参数至所述测试系统。

优选地,所述存储模块包括:

第一获取单元,用于获取所述流量中的原始请求和原始响应;

屏蔽单元,用于屏蔽所述原始请求或所述原始响应中的敏感信息;

第一生成单元,用于根据所述原始请求或所述原始响应生成所述测试用参数;

保存模块,用于保存所述测试用参数。

优选地,所述保存模块包括:

第二生成单元,用于为所述测试用参数生成特征码,所述特征码用于区别所述测试用参数的类别;

存储单元,用于存储所述特征码和所述测试用参数至数据库。

优选地,所述发送模块包括:

接收单元,用于接收到所述请求,所述请求包括所述特征码;

查找单元,用于在所述数据库中查询所有包括所述特征码的测试用参数;

发送单元,用于发送所述查询结果至所述测试系统。

优选地,所述获取模块包括:

第二获取单元,用于当在第一预设时间时,实时获取构成所述流量的流量包;

停止单元,用于在一预设时间段后,停止获取所述生产机的流量。

本发明通过获取生产机器运行运营程序时所产生的流量;根据所述流量生成测试用参数,并存储所述测试用参数;根据接收到的由测试系统发送的获取所述测试用参数的请求,发送所述测试用参数至所述测试系统。通过把这些实际的流量的请求转换为测试用参数,使得可以得到最大化、合理转换成高仿真的测试用参数,用于压力测试的数据样本和后端系统的模拟数据返回,使得测试环境和生产真实场景高度一致,提高测试数据的质量,保证功能上线后的稳定性。解决了之前人工准备用例工作量大、耗时长的问题。

附图说明

图1为本发明软件压力测试用数据提供方法第一实施例的流程示意图;

图2为本发明软件压力测试用数据提供方法第二实施例中根据所述流量生成测试用参数,并存储所述测试用参数步骤的细化流程示意图;

图3为本发明软件压力测试用数据提供方法第三实施例中保存所述测试用参数步骤的细化流程示意图;

图4为本发明软件压力测试用数据提供方法第四实施例中根据接收到的由测试系统发送的获取所述测试用参数的请求,发送所述测试用参数至所述测试系统步骤的细化流程示意图;

图5为本发明软件压力测试用数据提供方法第五实施例中获取生产机器运行运营程序时所产生的流量步骤的细化流程示意图;

图6为本发明软件压力测试用数据提供系统第一实施例的功能模块示意图;

图7为本发明软件压力测试用数据提供系统第二实施例中存储模块的细化功能模块示意图;

图8为本发明软件压力测试用数据提供系统第三实施例中保存模块的细化功能模块示意图;

图9为本发明软件压力测试用数据提供系统第四实施例中发送模块的细化功能模块示意图;

图10为本发明软件压力测试用数据提供系统第五实施例中获取模块的细化功能模块示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明提供一种软件压力测试用数据提供方法,参照图1,在本发明软件压力测试用数据提供方法第一实施例中,所述软件压力测试用数据提供方法包括以下步骤:

步骤S10,获取生产机器运行运营程序时所产生的流量;

步骤S20,根据所述流量生成测试用参数,并存储所述测试用参数;

步骤S30,根据接收到的由测试系统发送的获取所述测试用参数的请求,发送所述测试用参数至所述测试系统。

当用户使用运营程序实现业务时,会在生产机器产生输入和输出响应,在本实施例中所述运营程序为网络应用,所述生产机器为服务器,所述流量由http(超文本传输协议)请求和http响应产生,所述流量在真实运营场景中产生,数据流大。通过把这些实际的流量请求转换为测试用参数,使得可以得到最大化、合理转换成高仿真的测试用参数,这些测试试用参数用于压力测试的数据样本和后端系统的模拟数据返回,使得测试环境和生产真实场景高度一致,解决难以复现运行时出现的程序问题或性能调优的问题。提高测试数据的质量,可有效帮助发现问题,保证功能上线后的稳定性。解决了之前人工准备用例工作量大、覆盖率低、耗时长的问题。

具体地,在本实施例中,通过在所述服务器设置拦截器对所述运营程序的所有http请求和http响应,解析所述流量重新获取所有所述http请求的文本内容,获取所述请求中地址,请求方法,请求参数,组成多个测试用参数,并存储为测试用参数。在测试时测试系统发来获取测试用参数的请求后,返回所述测试系统所述测试用参数。减轻了为测试系统准备测试用参数的工作量,提高测试数据的质量,帮助发现问题,保证功能上线后的稳定性。

需要说明的是,在有些实施例中所获取的流量为其他协议的流量,比如桌面程序时,获取的是机器IO端口的输入输出信息或者thrift协议(一种跨语言的服务协议)。

请参照图2,基于本发明软件压力测试用数据提供方法第一实施例,在本发明软件压力测试用数据提供方法第二实施例中,所述根据所述流量生成测试用参数,并存储所述测试用参数包括:

步骤S21,获取所述流量中的原始请求和原始响应;

在本实施例中,所述测试用参数不只用于作为测试系统的输入参数,还用于使用所述原始响应的信息为所述测试系统提供虚拟的业务驱动数据,例如MOCK数据,所以在本实施例中还获取原始响应作模拟的支持数据源。

步骤S22,屏蔽所述原始请求或所述原始响应中的敏感信息;

在原始请求或响应中可能会存在像密码,用户住址等敏感信息,为了防止测试人员得到,在本实施例中,使用掩码代替所述原始请求或响应中的敏感信息。

步骤S23,根据所述原始请求或所述原始响应生成所述测试用参数;

步骤S24,保存所述测试用参数。

具体地,在获取到原始请求或所述原始响应后,检查所述原始请求或所述原始响应中是否包括密码,如果包括密码,则统一使用字符串“******”进行替换,把所述原始请求或所述原始响应转化为测试用参数,并保存所述已经使用“******”代替原有密码的测试用参数。通过屏蔽所述原始请求或所述原始响应中的敏感信息,避免了用户信息泄露的可能性,增加为测试系统提供数据的安全性。

请参照图3,基于本发明软件压力测试用数据提供方法第二实施例,在本发明软件压力测试用数据提供方法第三实施例中,所述保存所述测试用参数包括:

步骤S241,为所述测试用参数生成特征码,所述特征码用于区别所述测试用参数的类别;

步骤S242,存储所述特征码和所述测试用参数至数据库。

通过在存储时根据原有的原始请求或原始响应原始响应为所述测试用参数设置类别,使得所述测试用参数为多个时,不需要一个个判断所述测试用参数是哪种参数,方便测试系统一次进行多个数据的调取,加快为所述测试系统提供数据的速度。

具体在本实施例中,当所述测试用参数为原始请求时,获取所述原始请求的网络请求的地址部分文本,并使用所述地址部分文本的hash值作为所述测试用参数的特征码,并存储所述测试用参数和所述特征码,及其对应关系,使得访问所述网络请求的地址的所有参数拥有一个唯一的标签。

请参照图4,基于本发明软件压力测试用数据提供方法第三实施例,在本发明软件压力测试用数据提供方法第四实施例中,所述根据接收到的由测试系统发送的获取所述测试用参数的请求,发送所述测试用参数至所述测试系统包括:

步骤S31,接收到所述请求,所述请求包括所述特征码;

步骤S32,在所述数据库中查询所有包括所述特征码的测试用参数;

步骤S33,发送所述查询结果至所述测试系统。

在测试时,测试系统发送含有特征码的获取请求,在收取到所述获取请求后根据所述特征码在数据库中查询,根据所述特征码查询到所述测试用参数后为所述测试系统返回所述测试用参数,所述测试用参数为所有特征码为所述获取请求中的特征码。通过设置所述特征码使得测试系统在返回测试用参数时,可以一次请求获取全部的参数,提高了为测试系统提供测试参数的效率。

请参照图5,基于本发明软件压力测试用数据提供方法第一实施例,在本发明软件压力测试用数据提供方法第五实施例中,所述获取生产机器运行运营程序时所产生的流量包括:

步骤S11,当在第一预设时间时,实时获取构成所述流量的流量包;

步骤S12,在一预设时间段后,停止获取所述生产机的流量。

在本实施例中,在每天晚上八点开始,通过对所述生产机器使用tcpdump(一种可以将网络中传送的数据包完全截获下来提供分析的技术)操作获取数据包,并获取cap文件,实时传送回指定位置,再根据所述运营程序所是使用的协议,对所述cap文件进行解析,获取真实的访问请求和返回响应,因为是实时进行数据的获取和传送,避免了因为专门对原有响应的访问或等待导致对业务线的影响;在三十分钟后停止tcpdump操作。通过在指定的第一时间进行预设时间段的获取所述生产机器的流量,也避免了长时间对所述运营程序正常业务的影响,提高了获取测试用参数的安全性。

本发明提供一种软件压力测试用数据提供系统,参照图6,在本发明软件压力测试用数据提供系统第一实施例中,所述软件压力测试用数据提供系统包括:

获取模块10,用于获取生产机器的流量,所述生产机器为运行运营程序的机器,所述流量为所述运营程序真实运行时所产生的流量;

存储模块20,用于根据所述流量生成测试用参数,并存储所述测试用参数;

发送模块30,用于根据接收到的由测试系统发送的获取所述测试用参数的请求,发送所述测试用参数至所述测试系统。

当用户使用运营程序实现业务时,会在生产机器产生输入和输出响应,在本实施例中所述运营程序为网络应用,所述生产机器为服务器,所述流量由http(超文本传输协议)请求和http响应产生,所述流量在真实运营场景中产生,数据流大。通过把这些实际的流量请求转换为测试用参数,使得可以得到最大化、合理转换成高仿真的测试用参数,这些测试试用参数用于压力测试的数据样本和后端系统的模拟数据返回,使得测试环境和生产真实场景高度一致,解决难以复现运行时出现的程序问题或性能调优的问题。提高测试数据的质量,,可有效帮助发现问题,保证功能上线后的稳定性。解决了之前人工准备用例工作量大、覆盖率低、耗时长的问题。

具体地,在本实施例中,获取模块10通过在所述服务器设置拦截器对所述运营程序的所有http请求和http响应,解析所述流量重新获取所有所述http请求的文本内容,获取所述请求中地址,请求方法,请求参数,组成多个测试用参数,模块20存储存储为测试用参数。在测试时测试系统发来获取测试用参数的请求后,发送模块30返回所述测试系统所述测试用参数。减轻了为测试系统准备测试用参数的工作量,提高测试数据的质量,帮助发现问题,保证功能上线后的稳定性。

需要说明的是,在有些实施例中所获取的流量为其他协议的流量,比如桌面程序时,获取的是机器IO端口的输入输出信息或者thrift协议(一种跨语言的服务协议)。

请参照图7,基于本发明软件压力测试用数据提供系统第一实施例,在本发明软件压力测试用数据提供系统第二实施例中,所述存储模块包括:

第一获取单元21,用于获取所述流量中的原始请求和原始响应;

在本实施例中,所述测试用参数不只用于作为测试系统的输入参数,还用于使用所述原始响应的信息为所述测试系统提供虚拟的业务驱动数据,例如MOCK数据,所以在本实施例中还获取原始响应作模拟的支持数据源。

屏蔽单元22,用于屏蔽所述原始请求或所述原始响应中的敏感信息;

在原始请求或响应中可能会存在像密码,用户住址等敏感信息,为了防止测试人员得到,在本实施例中,使用掩码代替所述原始请求或响应中的敏感信息。

第一生成单元23,用于根据所述原始请求或所述原始响应生成所述测试用参数;

保存模块24,用于保存所述测试用参数。

具体地,在第一获取单元21获取到原始请求或所述原始响应后,屏蔽单元22检查所述原始请求或所述原始响应中是否包括密码,如果包括密码,则统一使用字符串“******”进行替换,第一生成单元23把所述原始请求或所述原始响应转化为测试用参数,保存模块24保存所述已经使用“******”代替原有密码的测试用参数。通过屏蔽所述原始请求或所述原始响应中的敏感信息,避免了用户信息泄露的可能性,增加为测试系统提供数据的安全性。

请参照图8,基于本发明软件压力测试用数据提供系统第二实施例,在本发明软件压力测试用数据提供系统第三实施例中,所述存储模块包括:

第二生成单元241,用于为所述测试用参数生成特征码测试用参数生成特征码,所述特征码用于区别所述测试用参数的类别;

存储单元242,用于存储所述特征码和所述测试用参数至数据库。

通过在存储时根据原有的原始请求或原始响应原始响应为所述测试用参数设置类别,使得所述测试用参数为多个时,不需要一个个判断所述测试用参数是哪种参数,方便测试系统一次进行多个数据的调取,加快为所述测试系统提供数据的速度。

具体在本实施例中,当所述测试用参数为原始请求时,第二生成单元241获取所述原始请求的网络请求的地址部分文本,并使用所述地址部分文本的hash值作为所述测试用参数的特征码,存储单元242存储所述测试用参数和所述特征码,及其对应关系,使得访问所述网络请求的地址的所有参数拥有一个唯一的标签。

请参照图9,基于本发明软件压力测试用数据提供系统第三实施例,在本发明软件压力测试用数据提供系统第四实施例中,所述发送模块包括:

接收单元31,用于接收到来自所述测试系统的获取请求,所述获取请求包括所述测试用参数的特征码;

查找单元32,用于在数据库中通过所述测试用参数的特征码查找所述测试用参数;

发送单元33,用于根据查找的结果发送所述测试用参数至所述测试系统所述测试系统。

在测试时,测试系统发送含有特征码的获取请求,在收取到所述获取请求后接收单元31根据所述特征码在数据库中查询,查找单元32根据所述特征码查询到所述测试用参数后,发送单元33为所述测试系统返回所述测试用参数,所述测试用参数为所有特征码为所述获取请求中的特征码。通过设置所述特征码使得测试系统在返回测试用参数时,可以一次请求获取全部的参数,提高了为测试系统提供测试参数的效率。

请参照图10,基于本发明软件压力测试用数据提供系统第一实施例,在本发明软件压力测试用数据提供系统第五实施例中,所所述获取模块包括:

第二获取单元11,当在第一预设时间时,实时获取所述流量,所述流量为所述生产机器指定端口中传送的数据包;

停止单元12,在一预设时间段后,停止获取所述生产机的流量。

在本实施例中,第二获取单元11在每天晚上八点开始,通过对所述生产机器使用tcpdump(一种可以将网络中传送的数据包完全截获下来提供分析的技术)操作获取数据包,并获取cap文件,实时传送回指定位置,再根据所述运营程序所是使用的协议,对所述cap文件进行解析,获取真实的访问请求和返回响应;停止单元12在三十分钟后停止tcpdump操作。通过在指定的第一时间进行预设时间段的获取所述生产机器的流量,避免了长时间对所述运营程序正常业务的影响,提高了获取测试用参数的安全性。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1