[发明专利]一种模拟线上压力测试的方法和装置有效
申请号: | 201610161942.7 | 申请日: | 2016-03-21 |
公开(公告)号: | CN107220165B | 公开(公告)日: | 2020-08-04 |
发明(设计)人: | 林江彬;徐彪 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F11/34 | 分类号: | G06F11/34 |
代理公司: | 北京润泽恒知识产权代理有限公司 11319 | 代理人: | 赵娟 |
地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 模拟 线上 压力 测试 方法 装置 | ||
本申请实施例提供了一种模拟线上压力测试的方法和装置,所述方法包括:获得单位时间内产生的请求总次数;将所述单位时间划分为多个时间片;根据所述请求总次数,分别确定与所述多个时间片对应的请求次数,并按照所述请求次数执行相应时间片的请求,从而能够保证在模拟线上压力测试时产生的请求次数线上真实的请求次数保持一致;同时,采用根据请求总次数确定每个时间片的请求次数的方式,也使得在模拟线上压力测试时产生的压力是可控的。
技术领域
本申请涉及信息技术领域,特别是涉及一种模拟线上压力测试的方法和一种模拟线上压力测试的装置。
背景技术
压力测试是指对被测系统不断施加压力的测试,是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统所能提供的最大服务级别的测试。例如,测试一个Web站点在大量的访问请求下,系统的响应何时会退化或失败。通常,压力测试都是通过模拟线上压力来进行的。
压力测试工具的原理是:客户端通过多线程或多进程模拟虚拟用户访问,对服务器端施加压力,然后在过程中监控和收集性能数据。目前,一般采用压力器来实现。压力器的压力产生模块可以根据脚本内容产生实际的负载,也就是根据用户的设置,进行自我复制来生成多个客户端向服务器发送请求。
传统的模拟线上压力的方法是由压力器的压力产生模块创建多个线程,在测试中,每个线程都按照极限压力来进行测试。极限压力的意思是,每个线程在发起一次访问请求后,又立即发起一次新的访问请求,或者只是通过简单的暂停一段时间来减少压力的产生。但是,传统的方法存在如下缺陷:
1)通过压力器创建多个线程,从而产生的压力的次数和频率无法和线上真实压力的次数和频率一致,使得压力测试不能获得理想的结果。
2)通过压力器产生的压力,受软硬件环境影响较大,不同类型或者不同型号的压力器产生的压力差异较大。
3)压力器创建的多个线程相互之间是独立的,每个独立的线程之间没有任何关联,无法按照测试的实际需求去统一地对压力的大小进行控制。
发明内容
鉴于上述问题,提出了本申请实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种模拟线上压力测试的方法和相应的一种模拟线上压力测试的装置。
为了解决上述问题,本申请公开了一种模拟线上压力测试的方法,包括:
获得单位时间内产生的请求总次数;
将所述单位时间划分为多个时间片;
根据所述请求总次数,分别确定与所述多个时间片对应的请求次数,并按照所述请求次数执行相应时间片的请求。
可选地,所述根据所述请求总次数,分别确定与所述多个时间片对应的请求次数,并按照所述请求次数执行相应时间片的请求的步骤包括:
遍历所述多个时间片;
采用所述请求总次数确定与所述多个时间片对应的请求次数。
在执行当前时间片时,将所述请求次数添加到任务队列;
调用预设的测试线程,从所述任务队列中读取当前请求次数后,发起相应次数的请求。
可选地,所述调用预设的测试线程,从所述任务队列中读取当前请求次数后,发起相应次数的请求的步骤包括:
调用预设的测试线程,判断所述任务队列中的当前请求次数是否为零;
若否,则采用所述预设的测试线程,从所述任务队列中读取当前请求次数后,发起相应的请求,并对所述当前请求次数递减;
若是,则返回所述判断所述任务队列中的当前请求次数是否为零的子步骤。
可选地,所述获得单位时间内产生的请求总次数的步骤包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610161942.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:网络通信装置与电子装置
- 下一篇:一种CPU占用率的统计方法及装置