CN103428042B - 对服务器进行压力测试的方法及*** - Google Patents
对服务器进行压力测试的方法及*** Download PDFInfo
- Publication number
- CN103428042B CN103428042B CN201210159568.9A CN201210159568A CN103428042B CN 103428042 B CN103428042 B CN 103428042B CN 201210159568 A CN201210159568 A CN 201210159568A CN 103428042 B CN103428042 B CN 103428042B
- Authority
- CN
- China
- Prior art keywords
- response message
- server
- access
- measured
- access request
- 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.)
- Active
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明提供了对服务器进行压力测试的方法及***,其中,该方法包括:从待测服务器获取访问日志文件,从访问日志文件中读取访问请求;向待测服务器发送访问请求,并接收待测服务器返回的对访问请求进行处理后的响应消息;从访问日志文件中读取对应所述访问请求的响应消息,比较读取的响应消息与接收的响应消息是否相同,记录比较结果。本发明方案能够节省压力测试的工作量,并能得到关于响应消息一致性的测试结果。
Description
技术领域
本发明涉及测试领域,尤其涉及对服务器进行压力测试的方法及***。
背景技术
互联网开发的节奏非常快,一天内常有大量版本的业务上线,每个业务由各自的服务器提供服务,如何快速对这些服务器进行压力测试是互联网企业测试中遇到的棘手问题。压力测试也就是模仿用户对服务器发起大量访问请求进而得到服务器响应情况的测试。
现有对服务器进行压力测试的方法须通过手工测试完成,都需要经历制定测试计划、编写测试用例、执行测试用例、编写测试报告的完整过程。在这个过程中,针对不同的待测服务器,需要编写不同的测试用例,其工作量很大,并且,执行测试用例也是一个频繁的操作,需要耗费大量的人力。以待测服务器是检索服务器为例,需要人为编写大量的带有不同检索词的访问请求,并人为执行访问请求,以向检索服务器进行访问;而后,接收检索服务器返回的对访问请求进行处理后的响应消息,人为统计并记录访问结果,具体包括:人为统计接收到响应消息的访问次数,将所述次数与访问总次数进行相除,将相除结果作为压力测试结果。
可见,现有方案需要消耗大量的人力资源,并且,只能统计出是否接收到响应消息的测试结果,不能得到关于响应消息一致性的测试结果。
发明内容
本发明提供了一种对服务器进行压力测试的方法,该方法能够节省压力测试的工作量,并能得到关于响应消息一致性的测试结果。
本发明提供了一种对服务器进行压力测试的***,该***能够节省压力测试的工作量,并能得到关于响应消息一致性的测试结果。
一种对服务器进行压力测试的方法,该方法包括:
从待测服务器获取访问日志文件,从访问日志文件中读取访问请求;
向待测服务器发送访问请求,并接收待测服务器返回的对访问请求进行处理后的响应消息;
从访问日志文件中读取对应所述访问请求的响应消息,比较读取的响应消息与接收的响应消息是否相同,记录比较结果。
一种对服务器进行压力测试的***,该***包括代理服务器和测试管理子***;
所述代理服务器,用于从待测服务器获取访问日志文件,缓存访问日志文件,从访问日志文件中读取访问请求,向待测服务器发送访问请求,并接收待测服务器返回的对访问请求进行处理后的响应消息,将所述访问请求和所述响应消息发送给所述测试管理子***;
所述测试管理子***,用于从所述代理服务器缓存的访问日志文件中读取对应所述访问请求的响应消息,比较读取的响应消息与接收的响应消息是否相同,记录比较结果。
从上述方案可以看出,本发明中,从待测服务器获取访问日志文件,根据从访问日志文件读取的访问请求向待测服务器发送访问请求;而后,从访问日志文件中读取对应所述访问请求的响应消息,比较读取的响应消息与接收的响应消息是否相同,记录比较结果。本发明根据从访问日志文件读取的访问请求向待测服务器发送访问请求,利用访问日志文件中用户的真实访问作为测试用例,大大减小了工作量;并且,测试路径覆盖广泛,可模仿各种网络、各种浏览器的真实访问,使测试结果更真实、准确;而且,本发明还对从访问日志文件中读取的响应消息与接收的响应消息进行比较,进而得到了关于响应消息一致性的测试结果。
附图说明
图1为本发明对服务器进行压力测试的方法示意性流程图;
图2为本发明对服务器进行压力测试的***结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明进一步详细说明。
互联网服务器即互联网中为用户提供某业务服务的服务器,每个互联网服务器每天都有大量的用户访问,包括从全球任何地方、在任何时间以任何网络进行的访问,不同的用户按照各自不同的访问习惯对这些服务器进行访问,其复杂程度和覆盖的完善性都强于企业内部对服务器的压力测试;而这些访问信息都记录在服务器的访问日志文件中,所述访问信息包括访问请求和对应的响应消息。该访问日志文件用于记录用户访问服务器的访问信息,包括访问请求和对应的响应消息。
本发明基于访问日志文件,根据从访问日志文件读取的访问请求向待测服务器发送访问请求,以对待测服务器进行压力测试。参见图1,为本发明测试***对服务器进行压力测试的方法示意性流程图,其包括以下步骤:
步骤101,从待测服务器获取访问日志文件,从访问日志文件中读取访问请求。
如果所述待测服务器为搜索引擎服务器,从访问日志文件中读取的访问请求为用户在访问过程中向待测服务器发送的包含关键词的各种访问请求,例如包含关键词“黄山”的查询请求,包含关键词“总统”的查询请求,等等。
实际用户客户端与待测服务器进行数据传输之前,需建立链接,分别确认对方的身份。本发明中,测试***相当于实际用户客户端,在测试***从待测服务器获取访问日志文件之前,也需在测试***与待测服务器之间建立链接,分别确认对方的身份,测试***保存待测服务器标识,待测服务器保存测试***标识。
步骤102,向待测服务器发送访问请求,并接收待测服务器返回的对访问请求进行处理后的响应消息。
访问请求包括Http访问的信息头(Header)和请求体数据;响应消息包括Http响应的信息头(Header)和响应内容体数据。测试***与待测服务器之间传输的访问请求、响应消息等信息可具体采用socket协议格式。响应消息是待测服务器对接收的访问请求进行处理后的消息,具体说明,如果所述待测服务器为搜索引擎服务器,访问请求为用户在访问过程中向待测服务器发送的包含关键词的各种访问请求,例如包含关键词“黄山”的查询请求,则待测服务器根据关键词“黄山”进行数据搜索,将搜索得到的数据作为响应内容体数据,包含在响应消息中反馈给用户客户端。
步骤103,从访问日志文件中读取对应所述访问请求的响应消息,比较读取的响应消息与接收的响应消息是否相同,记录比较结果。
具体地,可以将读取的响应消息称为第一响应消息,将接收的响应消息称为第二响应消息。
比较响应消息是否相同的方法有多种,下面列举两种进行说明:
方法一:
采用消息摘要算法第五版(md5,MessageDigestAlgorithm),比较第一响应消息字符串与第二响应消息字符串是否相同,如果是,则读取的响应消息与接收的响应消息相同。采用md5比较字符串是否相同为已有技术,这里不赘述。
方法二:
分别读取响应消息中JS对象符号(JSON,JavaScriptObjectNotation)字段包含的键值,比较键值是否相同,如果是,则第一响应消息与第二响应消息相同;键值就是数据库中某种字段的值。响应消息包含JSON字段,JSON字段中包含键值,每条响应消息唯一对应一个键值,如果两条响应消息中的键值相同,则这两条响应消息相同。
步骤103所述记录比较结果,包括多种记录响应消息是否相同的方式,例如:
统计比较结果为相同的访问次数,将该访问次数作为压力测试结果;或者,
统计比较结果为相同的访问次数,再将所述次数与访问总次数进行相除,将相除结果作为压力测试结果。
得到压力测试结果之后,测试***可将压力测试结果以邮件或报表的形式通知测试人员和开发人员,进而使测试人员和开发人员快速了解服务器变化情况。
本发明根据从访问日志文件读取的访问请求向待测服务器发送访问请求,利用访问日志文件中用户的真实访问作为测试用例,不用编写特定的测试用例,大大减小了工作量;并且,测试路径覆盖广泛,可模仿各种网络、各种浏览器的真实访问,使测试结果更真实、准确;而且,本发明还对从访问日志文件中读取的响应消息与接收的响应消息进行比较,进而得到了关于响应消息一致性的测试结果。
参见图2,为本发明对服务器进行压力测试的***结构示意图,该***也就是前述的测试***,其包括代理服务器和测试管理子***;
所述代理服务器,用于从待测服务器获取访问日志文件,缓存访问日志文件,从访问日志文件中读取访问请求,向待测服务器发送访问请求,并接收待测服务器返回的对访问请求进行处理后的响应消息,将所述访问请求和所述响应消息发送给所述测试管理子***;
所述测试管理子***,用于从所述代理服务器缓存的访问日志文件中读取对应所述访问请求的响应消息,比较读取的响应消息与接收的响应消息是否相同,记录比较结果。
具体地,访问请求包括Http访问的信息头(Header)和请求体数据,响应消息包括Http响应的信息头和响应内容体数据。
可选地,所述代理服务器包括链接建立单元,用于预先与待测服务器之间建立链接,确认待测服务器身份。
实际用户客户端与待测服务器进行数据传输之前,需建立链接,分别确认对方的身份。本发明中,代理服务器相当于实际用户客户端,在代理服务器从待测服务器获取访问日志文件之前,也需在代理服务器与待测服务器之间建立链接,分别确认对方的身份,代理服务器保存待测服务器标识,待测服务器保存代理服务器标识。具体地,代理服务器可采用Http代理的方式用80或8080端口提供代理服务。
可选地,所述测试管理子***包括第一比较单元,用于采用md5,比较读取的响应消息字符串与接收的响应消息字符串是否相同,如果是,则读取的响应消息与接收的响应消息相同。
可选地,所述测试管理子***包括第二比较单元,用于分别从读取的响应消息和接收的响应消息中读取JSON字段包含的键值,比较键值是否相同,如果是,则读取的响应消息与接收的响应消息相同。响应消息包含JSON字段,JSON字段中包含键值,每条响应消息唯一对应一个键值,如果两条响应消息中的键值相同,则这两条响应消息相同。
可选地,所述测试管理子***包括结果记录单元,用于统计比较结果为相同的访问次数,将所述次数与访问总次数进行相除,将相除结果作为压力测试结果。得到压力测试结果之后,测试管理子***可将压力测试结果以邮件或报表的形式通知测试人员和开发人员,进而使测试人员和开发人员快速了解服务器变化情况,以对服务器进行维护。
根据需要,代理服务器和测试管理子***可置于同一设备内,也可以分别置于两个设备上。
本发明利用互联网服务器中访问日志文件记录的海量用户的访问请求,向待测服务器发送访问请求,并结合访问日志文件中记录的响应消息进行分析,得到压力测试结果,从而实现了快速、准确地对待测服务器进行自动化压力测试。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (8)
1.一种对服务器进行压力测试的方法,其特征在于,该方法包括:
从待测服务器获取访问日志文件,从访问日志文件中读取访问请求;
向待测服务器发送访问请求,并接收待测服务器返回的对访问请求进行处理后的响应消息;
从访问日志文件中读取对应所述访问请求的响应消息,比较读取的响应消息与接收的响应消息是否相同,
统计比较结果为相同的访问次数,将该访问次数作为压力测试结果;或者,统计比较结果为相同的访问次数,再将所述访问次数与访问总次数进行相除,将相除结果作为压力测试结果。
2.如权利要求1所述的方法,其特征在于,所述从待测服务器获取访问日志文件之前,该方法还包括:
与待测服务器之间建立链接,分别确认对方的身份。
3.如权利要求1所述的方法,其特征在于,所述比较包括:
采用消息摘要算法第五版,比较读取的响应消息字符串与接收的响应消息字符串是否相同,如果是,则读取的响应消息与接收的响应消息相同。
4.如权利要求1所述的方法,其特征在于,所述比较包括:
分别从读取的响应消息与接收的响应消息中读取Java脚本对象符号字段包含的键值,比较键值是否相同,如果是,则读取的响应消息与接收的响应消息相同。
5.一种对服务器进行压力测试的***,其特征在于,该***包括代理服务器和测试管理子***;
所述代理服务器,用于从待测服务器获取访问日志文件,缓存访问日志文件,从访问日志文件中读取访问请求,向待测服务器发送访问请求,并接收待测服务器返回的对访问请求进行处理后的响应消息,将所述访问请求和所述响应消息发送给所述测试管理子***;
所述测试管理子***,用于从所述代理服务器缓存的访问日志文件中读取对应所述访问请求的响应消息,比较读取的响应消息与接收的响应消息是否相同,统计比较结果为相同的访问次数,将该访问次数作为压力测试结果;或者,统计比较结果为相同的访问次数,再将所述访问次数与访问总次数进行相除,将相除结果作为压力测试结果。
6.如权利要求5所述的***,其特征在于,所述代理服务器包括链接建立单元,用于预先与待测服务器之间建立链接,确认待测服务器身份。
7.如权利要求5所述的***,其特征在于,所述测试管理子***包括第一比较单元,用于采用消息摘要算法第五版,比较读取的响应消息字符串与接收的响应消息字符串是否相同,如果是,则读取的响应消息与接收的响应消息相同。
8.如权利要求5所述的***,其特征在于,所述测试管理子***包括第二比较单元,用于分别从读取的响应消息和接收的响应消息中读取Java脚本对象符号字段包含的键值,比较键值是否相同,如果是,则读取的响应消息与接收的响应消息相同。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210159568.9A CN103428042B (zh) | 2012-05-22 | 2012-05-22 | 对服务器进行压力测试的方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210159568.9A CN103428042B (zh) | 2012-05-22 | 2012-05-22 | 对服务器进行压力测试的方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103428042A CN103428042A (zh) | 2013-12-04 |
CN103428042B true CN103428042B (zh) | 2016-06-22 |
Family
ID=49652245
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210159568.9A Active CN103428042B (zh) | 2012-05-22 | 2012-05-22 | 对服务器进行压力测试的方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103428042B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104410546B (zh) * | 2014-11-27 | 2018-04-03 | 北京国双科技有限公司 | 实时处理***的测试方法和装置 |
CN104951399B (zh) * | 2015-06-19 | 2017-11-07 | 北京齐尔布莱特科技有限公司 | 一种软件测试***和方法 |
CN105868050A (zh) * | 2015-12-29 | 2016-08-17 | 乐视网信息技术(北京)股份有限公司 | 基于json数据的验证方法及装置 |
CN106254145B (zh) * | 2016-09-06 | 2019-07-19 | 腾讯科技(深圳)有限公司 | 网络请求跟踪处理方法和装置 |
CN107948234B (zh) * | 2016-10-13 | 2021-02-12 | 北京国双科技有限公司 | 数据的处理方法及装置 |
CN107294803A (zh) * | 2017-06-15 | 2017-10-24 | 北京小度信息科技有限公司 | 响应信息一致性测试方法及装置 |
CN109150643B (zh) * | 2017-06-16 | 2022-09-23 | 创新先进技术有限公司 | 一种业务处理异常检测方法及装置 |
CN109309596B (zh) * | 2017-07-28 | 2022-10-04 | 阿里巴巴集团控股有限公司 | 一种压力测试方法、装置及服务器 |
CN110457199A (zh) * | 2018-05-08 | 2019-11-15 | 北京京东尚科信息技术有限公司 | 性能测试的方法和装置 |
CN109067938B (zh) * | 2018-10-15 | 2022-03-04 | 网宿科技股份有限公司 | 一种测试dns服务器的方法及装置 |
CN109542712B (zh) * | 2018-11-02 | 2023-04-07 | 平安科技(深圳)有限公司 | 服务器压力测试方法、装置、计算机设备和存储介质 |
CN110489339B (zh) * | 2019-07-26 | 2023-01-03 | 北京字节跳动网络技术有限公司 | 客户端压测报表生成方法、***、介质和电子设备 |
CN110659202A (zh) * | 2019-08-12 | 2020-01-07 | 网宿科技股份有限公司 | 客户端自动化测试方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6324492B1 (en) * | 1998-01-20 | 2001-11-27 | Microsoft Corporation | Server stress testing using multiple concurrent client simulation |
CN101184001A (zh) * | 2007-12-14 | 2008-05-21 | 北京金山软件有限公司 | 网络服务器压力测试方法及*** |
CN101388800A (zh) * | 2007-09-12 | 2009-03-18 | 百度在线网络技术(北京)有限公司 | 对服务器的网络性能进行压力测试的方法、设备及*** |
-
2012
- 2012-05-22 CN CN201210159568.9A patent/CN103428042B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6324492B1 (en) * | 1998-01-20 | 2001-11-27 | Microsoft Corporation | Server stress testing using multiple concurrent client simulation |
CN101388800A (zh) * | 2007-09-12 | 2009-03-18 | 百度在线网络技术(北京)有限公司 | 对服务器的网络性能进行压力测试的方法、设备及*** |
CN101184001A (zh) * | 2007-12-14 | 2008-05-21 | 北京金山软件有限公司 | 网络服务器压力测试方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN103428042A (zh) | 2013-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103428042B (zh) | 对服务器进行压力测试的方法及*** | |
CN111522922B (zh) | 日志信息查询方法、装置、存储介质及计算机设备 | |
CN103023710B (zh) | 一种安全测试***和方法 | |
US20200117692A1 (en) | Systems and methods for web analytics testing and web development | |
US7623463B2 (en) | Performance evaluation of a network-based application | |
CN106354634A (zh) | 接口测试方法及装置 | |
CN102546668B (zh) | 一种独立访问者的统计方法、装置及*** | |
CN108459850B (zh) | 生成测试脚本的方法、装置及*** | |
CN107294919A (zh) | 一种水平权限漏洞的检测方法及装置 | |
CN109039787A (zh) | 日志处理方法、装置及大数据集群 | |
CN104410546A (zh) | 实时处理***的测试方法和装置 | |
CN103634159A (zh) | 一种基于模拟登录的流量回放方法和装置 | |
Wenhui et al. | Study on REST API test model supporting web service integration | |
Bermbach et al. | Benchmarking web api quality-revisited | |
CN106126419A (zh) | 一种应用程序的调试方法及装置 | |
CN111651656A (zh) | 一种基于代工模式的动态网页爬虫方法及*** | |
CN115705190A (zh) | 依赖程度的确定方法及装置 | |
Kilintzis et al. | Evaluation of the performance of open-source RDBMS and triplestores for storing medical data over a web service | |
CN111930611B (zh) | 一种测试数据的统计方法和装置 | |
CN116776390A (zh) | 一种数据泄漏行为的监测方法、装置、存储介质及设备 | |
CN108959041B (zh) | 信息发送的方法、服务器及计算机可读存储介质 | |
CN102918527B (zh) | Web应用托管的调查方法和*** | |
CN109640127A (zh) | 内容分发网络的故障定位方法及装置 | |
CN114884804A (zh) | 基于微服务的多渠道信息隔离方法、装置和计算机设备 | |
CN105988917B (zh) | 异常信息获取方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20180518 Address after: 100190 Zhichun Road, Haidian District, Haidian District, Beijing, No. 49, 2 layer 224 Patentee after: Tencent Dadi Road (Beijing) Technology Co., Ltd. Address before: 518044 East 403 room, Sai Ge science and Technology Park, Futian District Zhenxing Road, Shenzhen, Guangdong, China, 2 Patentee before: Tencent Technology (Shenzhen) Co., Ltd. |