CN109951355A - 一种用于分布式系统白盒关联路径追踪的方法 - Google Patents
一种用于分布式系统白盒关联路径追踪的方法 Download PDFInfo
- Publication number
- CN109951355A CN109951355A CN201910187275.3A CN201910187275A CN109951355A CN 109951355 A CN109951355 A CN 109951355A CN 201910187275 A CN201910187275 A CN 201910187275A CN 109951355 A CN109951355 A CN 109951355A
- Authority
- CN
- China
- Prior art keywords
- user identifier
- service
- test
- whitepack
- distributed system
- 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.)
- Granted
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种用于分布式系统白盒关联路径追踪的方法,主要用于软件测试过程中分布式系统路径追踪。利用上述方法进行测试的步骤包括:用户标识设置,绑定与分离,各服务间的穿透,架构服务调用关系以及数据库访问数据等。本发明发明了一种用于分布式系统白盒关联路径追踪的方法,不仅可以从整个项目的角度观测当前测试用例涉及的服务,以及测试用例关联的测试服务之间的关联关系,还可以从每个服务的角度观测到该服务与数据库之间的交互,用户标识设置,绑定与分离,在代码块中植入用户标识,记录标识的测试信息,区分用户标识,归类测试用例。使得测试更全面,提高测试效率与质量,降低上线风险。
Description
技术领域
本发明涉及一种用于分布式系统白盒关联路径追踪的方法,主要用多层架构的软件测试全过程,具体涉及一种分析分布式系统调用过程中采集并分离不同请求的用户标识设置以及对应的白盒覆盖路径,服务之间调用过程的用户标识的传递和穿透,以及服务之间代码执行路径的关联关系的方法。
技术背景
传统的白盒测试方法通常以覆盖率为基础进行统计,但是仅仅将关注点聚焦在统计全局覆盖率,即测试用例执行的白盒覆盖信息是混合在一起的。这样是无法进行深度的测试用例分析的,测试的高级算法通常需要将覆盖数据分离到测试用例级别,例如执行回归测试用例选取,用例集的最小化和优先级分析,用例的聚类以及智能缺陷定位分析等。
特别在多用户并发访问的分布式系统中,由于同一个功能点在不同的服务节点之间的执行代码已经没有显示的关联关系,因此需要一种技术方法能够对主流分布式应用将一个请求序列的在多个服务节点上的对应的执行路径分析出来,实现分布式架构下测试用例对应的在各个服务节点的关联的白盒覆盖率的分析。
发明内容
本发明主要是解决在测试过程中存在的“无法区分测试人员以及该测试人员对应的测试过程及结果”、“无法在测试过程中将测试的整个流程运行路径(服务之间)记录下来”、“无法宏观的看清架构服务之间的调用关系以及服务之间的调用协议”以及“无法明确的看到各服务中数据库访问的情况”等技术问题,提供了一种用户标识设置、绑定与分离,服务之间的穿透,架构服务之间的调用关系以及数据库访问数据的方式。便于测试人更清晰直观准确的数据支持。
本发明的上述技术问题主要通过下述技术方案得以解决:
如下说明中所述“拦截”即:通过类名、函数名明确要拦截的信息,在通过分析函数参数、函数返回值等信息,获取到有用的信息,使用于测试过程中。
(1)记录测试用例运行过程中,设置用户标识,测试数据根据测试用户标识进行的区分。包括:
通过虚拟jsp技术,浏览器页面设置的方式,进行用户标识的设置;通过使用网络抓包工具进行网络附加技术,进行用户标识的设置;通过拦截技术获取内部用户,通过内部用户与用户标识的匹配关系,进行用户标识的设置。
在测试程序运行开始阶段,通过虚拟jsp的方式把用户标识设置进去;
在测试程序运行开始阶段,通过网络抓包工具抓取要加强的被测试应用的URL,并将用户标识加强到该应用的URL请求中,通过URL解析获取加强的用户标识;
测试程序中,有统一的入口函数,且有可唯一作为标识的参数。通过拦截获取入口函数的唯一标识,通过map映射获取用户标识,或者直接作为用户标识;
通过上述三种方式获取到用户标识,将该用户标识绑定到当前线程,配合白盒覆盖率,白盒覆盖率即在待测试程序的所述代码块中添加用于标识程序逻辑结构的块标识,生成一个用于描述程序中代码块逻辑结构的块编码表,块标识结合绑定在当前线程中的用户标识。在测试程序运行过程中的所述代码块中植入绑定的当前线程的用户标识,生成有记录该用户标识的代码块标识的测试信息,生成的测试信息归类到该测试用例下。多用户标识同时测试根据设置的用户标识进行区分,根据启动的测试用例进行归类。
(2)服务之间结合用户标识设置,使得用户标识应用于整个测试流程,测试过程中,当前运行服务通过某种协议请求其他服务时,通过拦截该协议的消息体,并将绑定的当前线程的用户标识加强到该协议的消息体中。其他服务在接受到该消息体时根据加强规则将用户标识从消息体中分离出来,将分离出来的用户标识进行绑定。实现服务间穿透。
所述“穿透”即:在当前服务要将消息发送到下一个服务时,在消息发送端,拦截发送的类、函数,将当前线程的用户标识加强到发送的消息体中(例如:http3协议,以setRequestHeader的方式,以指定key、value 的方式将当前线程的用户标识设置进去)。在消息接收端,拦截发送的类、函数,将发过来的消息体中加强进来的用户标识通过key解析出来,绑定到当前线程。整个流程下来以实现穿透。
穿透已经实现的协议有:HTTP3,HTTP4,OKHTTP,org.springframework.http.client,cn.hutool.http,dubbo,feign客户端,但不仅限于此;
Tcp协议支持手动模板修改实现穿透。
手动模板修改实现穿透即:通过配置类名、函数名,在拦截后通过修改setAppliactionKey,getAppliactionKey以实现上述所说的穿透。
(3)通过拦截以及设置服务的Application,随机生成调用ID,由协议发送到调用者的被调用ID即parentID。将各个服务通过ID与parentID 之间的关系,来确认各服务之间的调用关系,调用次数,是通过什么协议调用等。
将获取的调用关系的信息以json文件格式存储。
解析json格式数据,以图表的方式直观的展示各个模块之间的调用关系,让测试这也能直观的看到整体流程。
(4)通过拦截获取到数据库访问次数,访问数据等信息。将数据以json 文件格式存储,将数据整理以列表的形式展示。已经实现的有原生MySQL,框架ibatis、Mybatis和hibernate,但不仅限于此。
附图说明
图1为本发明的整体结构图。
图2为服务之间调用图。
图3为数据库访问数据列表展示。
具体实施方案
下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。
实施例:
如图1所示:设置用户标识
可通过虚拟jsp技术,浏览器页面设置的方式,通过cookie设置进行用户标识的设置,给测试浏览器一个代表用户标识的cookie;通过使用网络抓包工具进行网络附加技术,进行用户标识的设置;通过应用Agent技术拦截技术获取函数参数所表达的应用内部用户,通过内部用户与测试用户标识的匹配关系,进行用户标识的设置。
虚拟jsp技术,是通过在应用Agent中在应用程序所有有效访问地址之外增加一个固定访问地址的jsp,在拦截到HTTP请求时,且获取到该请求的URL中是设置的固定的jsp,则显示页面内容,该页面在原有被测试应用中不真正存在,是通过应用agent附加上去的,该JSP实现了应用服务器设置cookie的过程,通过页面设置的用户标识;通过网络抓包工具抓取要加强的应用的URL,并将用户标识加强到该应用的URL中,通过URL解析获取加强的用户标识;测试程序中,有统一的入口函数,且有可唯一作为标识的参数。通过拦截获取入口函数的唯一标识,通过map映射获取用户标识,或者直接作为用户标识。
并将设置的用户标识同时绑定到当前浏览器,后续测试都将附加该用户标识。
各个服务之间的穿透,通过消息附加的方式,使得用户标识应用于整个测试流程中。首先通过设置用户标识的方式将用户标识绑定到第一个访问的服务中,在跟下一个服务通讯的时候,在发送消息体前将当前服务设置的用户标识附加到消息体中,在下一个接收消息体的服务中进行解析绑定,以此类推,两个服务之间通过消息的附加,消息解析绑定的方式实现服务之间的穿透。
如图2所示:架构服务调用关系展示
给每个服务设置应用名称。依据上所述各个服务间穿透,当前运行服务通过某种协议请求其他服务,通过拦截技术可以获取到两两服务之间的调用关系,服务之间具体的协议。每个请求线程随机生成一个调用ID,协议请求中将调用ID附加到消息体中,接收方根据接受到的消息体解析到附加在消息体中的调用ID,即接收方的父ID。
将拦截到的数据以json格式保存。例如:
架构服务调用关系展示如图2所示。
通过拦截获取到数据库访问次数,访问数据等信息。将数据以json文件格式存储,将数据整理以列表的形式展示。
将拦截到的数据以json格式保存,例如:
数据库数据访问列表如图3所示。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
Claims (9)
1.一种用于分布式系统白盒关联路径追踪的方法,其特征在于,包括:
用户标识设置模块,所述用户标识设置模块用于记录测试用例运行过程中,访问的用户标识;
用户标识绑定与分离模块,所述用户标识绑定与分离模块用于区分不同用户在同时间段对测试程序进行测试,测试数据根据测试用户标识进行的区分;
服务间穿透模块,所述服务间穿透模块用于将当前服务的用户标识通过穿透技术应用于其他相关服务中,使得用户标识应用于整个测试流程相关的服务中;
架构各服务调用关系模块,所述架构各服务调用关系模块用于描述架构中各服务的调用关系;
数据库访问数据模块,所述数据库访问数据模块用于描述该服务数据库访问次数以及数据库访问数据的解析。
2.依据权利要求1所述的用于分布式系统白盒关联路径追踪的方法,其特征在于,通过虚拟jsp技术,浏览器页面设置的方式,进行用户标识的设置;通过使用网络抓包工具以及网络附加技术,进行用户标识的设置;通过拦截技术获取内部用户,通过内部用户与用户标识的匹配关系,进行用户标识的设置。
3.依据权利要求2所述的用于分布式系统白盒关联路径追踪的方法,其特征在于,拦截技术获取内部用户,能够通过配置能够作为内部用户的函数参数的全类名,函数名,根据模板编写规则进行编写模板;将能够作为内部用户的参数返回,编译为class文件放至指定位置,该追踪方法可获取内部用户,并与用户标识进行匹配。
4.依据权利要求2所述的用于分布式系统白盒关联路径追踪的方法,其特征在于,将设置的用户标识同时绑定到当前浏览器以及当前线程中;将设置的用户标识同时绑定到当前浏览器适用于虚拟jsp技术和网络抓包工具进行网络附加技术。
5.依据权利要求4所述的用于分布式系统白盒关联路径追踪的方法,其特征在于,后续测试,所有通过浏览器的请求都会将设置的用户标识附加到请求消息体中,通过拦截拆分该请求消息体,将拆分出的用户标识绑定到当前线程,通过浏览器的其他请求不再需要进行用户标识的设置。
6.依据权利要求4所述的用于分布式系统白盒关联路径追踪的方法,其特征在于,开启测试用例,在测试程序运行过程中的所述代码块中植入绑定的当前线程的用户标识,生成有记录该用户标识的代码块标识的测试信息,生成的测试信息归类到该测试用例下;多用户标识同时测试根据设置的用户标识进行区分,根据启动的测试用例进行归类。
7.依据权利要求4所述的用于分布式系统白盒关联路径追踪的方法,其特征在于,当前运行服务通过某种协议请求其他服务时,通过拦截该协议的消息体,并将绑定的当前线程的用户标识加强到该协议的消息体中;其他服务在接受到该消息体时根据加强规则将用户标识从消息体中分离出来,将分离出来的用户标识进行绑定。
8.依据权利要求7所述的用于分布式系统白盒关联路径追踪的方法,其特征在于,给每个服务设置应用名称,当前运行服务通过某种协议请求其他服务,通过拦截技术可以获取到两两服务之间的调用关系,服务之间具体的协议;每个请求线程随机生成一个调用ID,协议请求中将调用ID附加到消息体中,接收方根据接受到的消息体解析到附加在消息体中的调用ID,即接收方的父ID;根据服务之间具体的协议,应用名称,调用ID,以及父ID的方式来确认服务之间的调用关系。
9.依据权利要求8所述的用于分布式系统白盒关联路径追踪的方法,其特征在于,通过拦截获取到数据库访问次数,访问数据的信息,能够根据设置应用名称进行分类。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910187275.3A CN109951355B (zh) | 2019-03-13 | 2019-03-13 | 一种用于分布式系统白盒关联路径追踪的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910187275.3A CN109951355B (zh) | 2019-03-13 | 2019-03-13 | 一种用于分布式系统白盒关联路径追踪的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109951355A true CN109951355A (zh) | 2019-06-28 |
CN109951355B CN109951355B (zh) | 2022-09-06 |
Family
ID=67008825
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910187275.3A Active CN109951355B (zh) | 2019-03-13 | 2019-03-13 | 一种用于分布式系统白盒关联路径追踪的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109951355B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112835779A (zh) * | 2019-11-25 | 2021-05-25 | 上海哔哩哔哩科技有限公司 | 测试用例确定方法、装置、计算机设备 |
CN113254328A (zh) * | 2021-04-29 | 2021-08-13 | 厦门国际银行股份有限公司 | 白盒测试方法、系统、移动终端及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1641154A1 (en) * | 2004-09-22 | 2006-03-29 | Research In Motion Limited | Method and System for Testing Assembled Mobile Devices |
CN101075208A (zh) * | 2007-07-19 | 2007-11-21 | 中兴通讯股份有限公司 | 应用于白盒路径测试的测试用例生成方法 |
CN102724195A (zh) * | 2012-06-20 | 2012-10-10 | 华为技术有限公司 | 访问请求跟踪方法和相关装置 |
CN103023906A (zh) * | 2012-12-20 | 2013-04-03 | 北京奇虎科技有限公司 | 针对远程过程调用协议进行状态跟踪的方法及系统 |
CN103631828A (zh) * | 2012-08-28 | 2014-03-12 | 阿里巴巴集团控股有限公司 | 确定访问路径的方法和装置、确定页面流失率的方法和系统 |
CN105743988A (zh) * | 2016-03-30 | 2016-07-06 | 新浪网技术(中国)有限公司 | 网络用户追踪实现方法、装置及系统 |
CN108874647A (zh) * | 2018-06-12 | 2018-11-23 | 云南电网有限责任公司信息中心 | 一种业务系统用户轨迹识别方法 |
-
2019
- 2019-03-13 CN CN201910187275.3A patent/CN109951355B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1641154A1 (en) * | 2004-09-22 | 2006-03-29 | Research In Motion Limited | Method and System for Testing Assembled Mobile Devices |
CN101075208A (zh) * | 2007-07-19 | 2007-11-21 | 中兴通讯股份有限公司 | 应用于白盒路径测试的测试用例生成方法 |
CN102724195A (zh) * | 2012-06-20 | 2012-10-10 | 华为技术有限公司 | 访问请求跟踪方法和相关装置 |
CN103631828A (zh) * | 2012-08-28 | 2014-03-12 | 阿里巴巴集团控股有限公司 | 确定访问路径的方法和装置、确定页面流失率的方法和系统 |
CN103023906A (zh) * | 2012-12-20 | 2013-04-03 | 北京奇虎科技有限公司 | 针对远程过程调用协议进行状态跟踪的方法及系统 |
CN105743988A (zh) * | 2016-03-30 | 2016-07-06 | 新浪网技术(中国)有限公司 | 网络用户追踪实现方法、装置及系统 |
CN108874647A (zh) * | 2018-06-12 | 2018-11-23 | 云南电网有限责任公司信息中心 | 一种业务系统用户轨迹识别方法 |
Non-Patent Citations (1)
Title |
---|
陈明: "白盒密码安全性分析与研究", 《网络安全技术与应用》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112835779A (zh) * | 2019-11-25 | 2021-05-25 | 上海哔哩哔哩科技有限公司 | 测试用例确定方法、装置、计算机设备 |
CN113254328A (zh) * | 2021-04-29 | 2021-08-13 | 厦门国际银行股份有限公司 | 白盒测试方法、系统、移动终端及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109951355B (zh) | 2022-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8402131B2 (en) | Hierarchy for characterizing interactions with an application | |
US8260820B2 (en) | Method and apparatus for searching | |
CN106571981B (zh) | 一种dns服务器自动化测试方法与系统 | |
US20080010379A1 (en) | Method and system for content charging | |
US20070266149A1 (en) | Integrating traffic monitoring data and application runtime data | |
CN109710511B (zh) | Ab测试方法、装置、服务器及存储介质 | |
CN109298997A (zh) | 接口测试方法、系统、计算机设备和存储介质 | |
US20050228855A1 (en) | Acquisition system for distributed computing resources | |
US10582550B2 (en) | Generating sequenced instructions for connecting through captive portals | |
KR20080111005A (ko) | 서비스를 생성, 수행 및 매핑하는 시스템 및 방법 | |
CN106850830A (zh) | 一种业务请求处理方法、装置、系统和相关服务器 | |
CN106155812A (zh) | 一种对虚拟主机的资源管理的方法、装置、系统及电子设备 | |
US10693706B2 (en) | Method and apparatus of performing simultaneous multi-agent access for command execution through a single client | |
CN1941771B (zh) | 用于面向服务的体系结构应用的Web服务信息管理方法和系统 | |
CN106325988A (zh) | 任务调度方法及装置 | |
CN111200523B (zh) | 中台系统配置方法、装置、设备及存储介质 | |
CN109951355A (zh) | 一种用于分布式系统白盒关联路径追踪的方法 | |
CN109033404A (zh) | 日志数据处理方法、装置和系统 | |
CN113704077B (zh) | 测试用例生成方法及装置 | |
CN104038654B (zh) | 中继装置、客户端装置及方法 | |
US20060069783A1 (en) | Program, method and device for managing information shared among components, recording medium and communication apparatus | |
CN114185770A (zh) | 生成测试数据的方法、装置、计算机设备和存储介质 | |
CN113746883B (zh) | 链路跟踪方法及系统 | |
US20200210148A1 (en) | Method for adapting to blockchain and device, terminal and medium performing the same | |
CN107592359A (zh) | 一种基于rpc协议的服务端响应方法、装置及介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |