CN114138631A - 一种测试方法和测试装置 - Google Patents

一种测试方法和测试装置 Download PDF

Info

Publication number
CN114138631A
CN114138631A CN202111332469.1A CN202111332469A CN114138631A CN 114138631 A CN114138631 A CN 114138631A CN 202111332469 A CN202111332469 A CN 202111332469A CN 114138631 A CN114138631 A CN 114138631A
Authority
CN
China
Prior art keywords
real
result data
playback
result
test
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111332469.1A
Other languages
English (en)
Inventor
金玉鹏
危明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ysten Technology Co ltd
Original Assignee
Ysten Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ysten Technology Co ltd filed Critical Ysten Technology Co ltd
Priority to CN202111332469.1A priority Critical patent/CN114138631A/zh
Publication of CN114138631A publication Critical patent/CN114138631A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3696Methods or tools to render software testable
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/368Test management for test version control, e.g. updating test cases to a new software version
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种测试方法和测试装置,测试方法包括以下步骤,a、通过Goreplay流量录制工具监听业务平台服务端口,实现多个真实请求和多个真实结果数据的获取,得到第一种结果文件;b、将第一种结果文件导入到新版本软件的测试环境,通过Goreplay命令执行回放命令,把第一种结果文件中的多个真实请求回放到指定的测试服务上,保存并得到多个回放结果数据,形成第二种结果文件;c、将第二种结果文件中的每个真实请求所对应的真实结果数据和回放结果数据进行比对,输出每个真实请求下真实结果数据和回放结果数据的差异信息,根据差异信息判断新版本软件的兼容性。

Description

一种测试方法和测试装置
技术领域
本发明属于软件测试领域。
背景技术
随着技术的发展,机顶盒可以承载的功能越来越多,机顶盒版本迭代也越来越快,这就导致市面上的机顶盒存在多种型号、多种版本。这也导致平台服务需要兼容用户的多种型号、多种版本的机顶盒,进而时常发生平台新版本软件升级导致部分用户机顶盒无法正常使用而投诉。但是若要收集全国所有在支撑服务的机顶盒进行覆盖测试,则需要投入大量的成本。
为减少测试成本,现有的测试方法是收集各型号、各版本的机顶盒的请求,然后验证这些请求在新版本软件上的结果是否与之前老的、稳定版本的结果一致,当结果一致或基本一致的时候,可认为新版本软件的兼容性好,反之,认为新版本软件的兼容性不好。
现有的测试方法基本上是利用nginx日志或tcpcopy引流的方式获取机顶盒请求,然后把得到的机顶盒请求分别在新版本软件和稳定版本软件上再次发起请求获得两份请求结果,最后做对比。如申请号201710076421.6的一种测试方法,该测试方法是从日志文件中获取预定时间段中的请求,每个业务系统都需要集成相应的获取模块,增加集成工作量,获取到全版本请求(所有请求)的工作量很大,获取困难。
因此,现有测试方法存在获取到全版本请求困难的缺陷。
发明内容
本发明的目的在于,提供一种测试方法和测试装置。本发明具有获取全版本用户请求比较容易和验证兼容性比较快速便捷的优点。
本发明的技术方案:一种测试方法,a、通过Goreplay流量录制工具监听业务平台服务端口,实现多个真实请求和多个真实结果数据的获取,得到第一种结果文件;
b、将第一种结果文件导入到新版本软件的测试环境,通过Goreplay命令执行回放命令,把第一种结果文件中的多个真实请求回放到指定的测试服务上,保存并得到多个回放结果数据,形成第二种结果文件;
c、将第二种结果文件中的每个真实请求所对应的真实结果数据和回放结果数据进行比对,输出每个真实请求下真实结果数据和回放结果数据的差异信息,根据差异信息判断新版本软件的兼容性。
前述的测试方法中,所述步骤a,是在生产环境的Nginx服务器上部署Goreplay流量录制工具,随机选择三天,在每天的18:00到21:00复制业务平台服务端口的流量,实现多个真实请求和多个结果数据的获取,得到第一种结果文件。
前述的测试方法中,所述步骤b中,在回放命令中使用中间件合并回放的结果数据,使多个真实结果数据和多个回放的结果数据共同保存在第二种结果文件中。
前述的测试方法中,所述步骤c中,在进行比对时,过滤无业务意义的字段信息,提高对比的容易程度和效率。
前述的测试方法中,所述无业务意义的字段信息包括host信息和时间戳信息。
实现前述测试方法的测试装置,包括以下测试模块和对比模块;测试模块,用于安装新版本软件,对第一种结果文件中的多个真实请求执行回放命令,得到多个回放结果数据;对比模块用于第二种结果文件中的每个真实请求所对应的真实结果数据和回放结果数据进行比对,并输出每个真实请求下真实结果数据和回放结果数据的差异信息。
与现有技术相比,本发明通过Goreplay流量录制工具在高峰时段监听业务平台服务端口,在不需要获取模块的基础上,可很方便的获取到多个真实请求,即全版本请求,不需要过多硬件资源和维护资源的情况下,能完成生产环境多个版本、多个型号机顶盒的多个真实请求数据和多个真实结果数据的全面收集,通过将收集的真实请求数据导入到新版本软件的测试环境中进行回放,得到回放结果数据,将真实结果数据与对应的回放结果数据比对,能验证新版本软件的兼容性。由于在高峰时段收集到的真实请求数很多,记录请求结果的文件很大(1GB左右),对应回放的结果文件也很大,如果直接进行对比难度很大,本发明提供了结果文件对比中间件,通过过滤无业务意义的字段信息等手段降低了比对难度,提高了比对效率,可以比较快速便捷验证兼容性。因此,本发明具有获取全版本用户请求比较容易和验证兼容性比较快速便捷的优点。
附图说明
图1是实施例1的方法的流程图。
图2是实施例1的中间件的工作原理图。
图3是实施例1的第二种结果文件中,某一个真实请求下的真实结果数据和回放结果数据的信息图。
图4是实施例4中Tcpcopy实时引流的架构图。
具体实施方式
下面结合附图和实施例对本发明作进一步的说明,但并不作为对本发明限制的依据。
实施例1:一种测试方法,包括以下步骤,
a、在生产环境的Nginx服务器上部署Goreplay流量录制工具,随机选择三天,在每天的18:00到21:00复制业务平台服务端口的流量,实现多个真实请求和多个真实结果数据的获取,得到第一种结果文件。
在晚高峰的18:00-21:00之间复制流量,是因为这个时间段是机顶盒观看高峰时段,再随机选择3天进行复制,能更大范围的收集到更多型号、版本机顶盒的真实请求。针对需要升级的平台服务,只监听对应服务的端口,复制对应服务的真实请求和结果数据。
b、将第一种结果文件导入到新版本软件的测试环境,通过Goreplay命令执行回放命令,把第一种结果文件中的多个真实请求回放到指定的测试服务上,保存并得到多个回放结果数据,形成第二种结果文件;在回放命令中使用中间件合并回放的结果数据,使多个真实结果数据和多个回放的结果数据共同保存在第二种结果文件中。
所述中间件是一个程序,它在STDIN接受请求和响应负载,并在STDOUT发出修改的请求,可以自定义任何实现逻辑且对实现的语言没有要求。中间件的工作原理如图2所示。回放合并后的结果如图3所示,图3的录制结果中包含一个真实请求以及对应的真实结果数据,图3的回放结果中,包含了与真实请求以及对应的回放结果数据,在比对的时候,直接比对该真实请求下的两个结果即可。
c、将第二种结果文件中的每个真实请求所对应的真实结果数据和回放结果数据进行比对,输出每个真实请求下真实结果数据和回放结果数据的差异信息,根据差异信息判断新版本软件的兼容性;在进行比对时,过滤无业务意义的字段信息,提高对比的容易程度和效率;所述无业务意义的字段信息包括host信息和时间戳信息等。
判断新版本软件的兼容性的标准为:回放结果数据包含真实结果数据中所有业务字段且各业务字段对应的Value一致,则为兼容性好,反之,如何出现不同的Value,兼容性不好。
上述步骤b和步骤c利用计算机执行,所述计算机中包括了测试模块和对比模块,实现上述测试方法的测试装置即为计算机。
流量复制、回放可以有多种实现方式,但是要想不投入硬件资源,降低使用成本、维护成本的要求下,goreplay是最好的选择。另外在结果对比上,如果使用常规的两个文件对比,保证两个文件的顺序一致是个难题,本实施例利用goreplay的中间件机制很好的解决了这个问题。
实施例2:一种测试方法。业务系统记录详细请求日志,定制开发日志解析工具,把记录的请求转发到测试环境。(定制开发,增加工作量,后期需持续维护)
实施例3:一种测试方法。利用Nginx的ngx_http_mirror_module模块,编写Lua脚本,进行流量转发。(需要Lua工程师进行开发并持续维护)
实施例4:一种测试方法。Tcpcopy实时引流,把生产环境的真实请求流量拷贝转发到指定的测试环境。(部署需要至少3台服务器)。

Claims (6)

1.一种测试方法,其特征在于:包括以下步骤,
a、通过Goreplay流量录制工具监听业务平台服务端口,实现多个真实请求和多个真实结果数据的获取,得到第一种结果文件;
b、将第一种结果文件导入到新版本软件的测试环境,通过Goreplay命令执行回放命令,把第一种结果文件中的多个真实请求回放到指定的测试服务上,保存并得到多个回放结果数据,形成第二种结果文件;
c、将第二种结果文件中的每个真实请求所对应的真实结果数据和回放结果数据进行比对,输出每个真实请求下真实结果数据和回放结果数据的差异信息,根据差异信息判断新版本软件的兼容性。
2.根据权利要求1所述的测试方法,其特征在于:所述步骤a,是在生产环境的Nginx服务器上部署Goreplay流量录制工具,随机选择三天,在每天的18:00到21:00复制业务平台服务端口的流量,实现多个真实请求和多个真实结果数据的获取,得到第一种结果文件。
3.根据权利要求1所述的测试方法,其特征在于:所述步骤b中,在回放命令中使用中间件合并回放的结果数据,使多个真实结果数据和多个回放的结果数据共同保存在第二种结果文件中。
4.根据权利要求1所述的测试方法,其特征在于:所述步骤c中,在进行比对时,过滤无业务意义的字段信息,提高对比的容易程度和效率。
5.根据权利要求4所述的测试方法,其特征在于:所述无业务意义的字段信息包括host信息和时间戳信息。
6.实现权利要求1至5中任意一项所述测试方法的测试装置,其特征在于:包括以下测试模块和对比模块;测试模块,用于安装新版本软件,对第一种结果文件中的多个真实请求执行回放命令,得到多个回放结果数据;对比模块用于第二种结果文件中的每个真实请求所对应的真实结果数据和回放结果数据进行比对,并输出每个真实请求下真实结果数据和回放结果数据的差异信息。
CN202111332469.1A 2021-11-11 2021-11-11 一种测试方法和测试装置 Pending CN114138631A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111332469.1A CN114138631A (zh) 2021-11-11 2021-11-11 一种测试方法和测试装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111332469.1A CN114138631A (zh) 2021-11-11 2021-11-11 一种测试方法和测试装置

Publications (1)

Publication Number Publication Date
CN114138631A true CN114138631A (zh) 2022-03-04

Family

ID=80393684

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111332469.1A Pending CN114138631A (zh) 2021-11-11 2021-11-11 一种测试方法和测试装置

Country Status (1)

Country Link
CN (1) CN114138631A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116719750A (zh) * 2023-08-11 2023-09-08 海马云(天津)信息技术有限公司 软件测试方法及装置、服务器设备和存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116719750A (zh) * 2023-08-11 2023-09-08 海马云(天津)信息技术有限公司 软件测试方法及装置、服务器设备和存储介质
CN116719750B (zh) * 2023-08-11 2023-12-22 海马云(天津)信息技术有限公司 软件测试方法及装置、服务器设备和存储介质

Similar Documents

Publication Publication Date Title
CN110309071B (zh) 测试代码的生成方法及模块、测试方法及系统
CN101316185B (zh) 一种基于日志文件的分析结果定位系统资源瓶颈的方法
CN106326108A (zh) 一种新应用的测试方法及装置
CN105094783A (zh) 安卓应用稳定性测试的方法及装置
CN110750458A (zh) 大数据平台测试方法、装置、可读存储介质及电子设备
CN101145964A (zh) 一种网管系统自动冒烟测试方法和系统
CN104424093A (zh) 一种兼容性测试方法及系统
CN107807883B (zh) 一种用户态网络文件系统的单元测试方法及装置
CN105446868A (zh) 系统兼容性测试方法、测试用例管理方法及相关装置
CN107733735B (zh) 一种植入于压测宝中的脚本录制系统及方法
CN106506243A (zh) 一种基于日志数据的网管故障诊断方法
US20090271415A1 (en) Storage area network management modeling simulation
CN107480036A (zh) iOS移动应用的自动测试方法、装置、存储介质及终端
CN105095207A (zh) 检索、获取应用软件内容的方法和装置
US8024706B1 (en) Techniques for embedding testing or debugging features within a service
US8560895B2 (en) Distillation and reconstruction of provisioning components
CN112650688A (zh) 自动化回归测试方法、关联设备以及计算机程序产品
CN114138631A (zh) 一种测试方法和测试装置
CN102025555B (zh) Ip多媒体子系统性能测试的方法
CN104301916B (zh) 基于移动智能终端通用插件的测试优化方法、装置及系统
CN112148616B (zh) 一种性能测试管理平台
CN109446047B (zh) 性能测试平台脚本存储方法、装置、设备及存储介质
CN113934885A (zh) 一种基于局域网的adas视频数据回灌性能验证系统及方法
CN112612697A (zh) 一种基于字节码技术的软件缺陷测试定位方法及系统
CN114860619B (zh) 一种数据库审计程序回归测试方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination