Atitit.并发测试解决方案(2),atitit解决方案
Atitit.并发测试解决方案(2) -----获取随机数据库记录 随机抽取数据 随机排序
1. 应用场景 1
2. 随机抽取数据原理 1
3. 常用的实现方法:::数据库随机函数 1
4. Mssql 的实现 NEWID() 跟rand() 1
5. newid()与rand()的区别 2
6. NEWID() 2
7. 参考 2
1. 应用场景
并发测试
2. 随机抽取数据原理
原理是 循环所有的ID/记录,附加随机函数字段,然后排序as 这个字段..
3. 常用的实现方法:::数据库随机函数
作者::老哇的爪子Attilax艾龙,EMAIL:1466519819@qq.com
转载请注明来源:http://blog.csdn.net/attilax
4. Mssql 的实现 NEWID() 跟rand()
SELECT TOP 10 *
FROM wechatuhstry
ORDER BY NEWID()
或者
select top 10 *,newid() as Random from ywle where ywlename='001' ordey by Random
随机函数:rand()
在查询分析器中执行:select rand(),可以看到结果会是类似于这样的随机小数:0.36361513486289558,像这样的小数在实际应用中用得不多,一般要取随机数都会 取随机整数。那就看下面的两种随机取整数的方法:
应该使用newid 不是rand()..newid每row不一样....rand每次数不一样.
它返回一个GUID
5. newid()与rand()的区别
select top 3 id from table order by newid() 这一条每运行一次,都产生新的一个随机的三行结果
而 select top 3 id from table order by Rand() 运行后每一次的三条记录是一样的
Rand()函数在给定命令里所有行都返回相同的值
你可能不需要得到这样的结果,则可以给rand()函数提供一个种子值。在下面的代码中,我们在Rand()函数中给定每一行的productid作为种子值。
6. NEWID()
4650D5AA-E8FE-4721-83E7-EA12C4F7A473
它返回一个GUID
newdi()创建 uniqueidentifier 类型的唯一值,类似这样的样式 6F9619FF-8B86-D011-B42D-00C04FC964FF
由于select每当扫描得到一条记录时候均调用该函数,这样产生每条结果记录的各不相同值,如果按照此值排序,就类似于产生了随机记录的效果
7. 参考
数据库查询排序使用随机排序结果示例(Oracle_MySQL_MS SQL Server)_oracle_脚本之家.htm
SQL NEWID()随机函数 - 兰松的日志 - 网易博客.htm
sql server的随机函数newID()和RAND() - 无意 - 博客园.htm
SQL随机函数NEWID()和RAND() - xiao_mege的日志 - 网易博客.htm
newid()与rand()的区别小谈 - 远方 - 博客园.htm
50
这篇文章解决了很多用户的难题,就是如何通过最大用户并发数来确定系统最大用户数,因为这个问题不解决的话,用户很难挑选到最为适合自身系统的服务器,我们来看看这篇文章。以下是作者原文。
本篇主要是性能方面的。
一个系统的最大并发用户数为1100,怎么能推算出该系统的支持最大用户数。
其中用户性能要求如下:支持100万注册用户
性能需求分析:
1、根据用户的要求,本系统要支持100万用户,其中性能机器配置如何?高峰值是多少?带宽?等
2、如果都是采用公司的测试环境,那么本次性能应该做哪几种性能?性能评测、负载测试、强度测试?
3、怎么算出并发用户数?响应时间?
性能指标确定:
因为用户的性能需求太广,没有定到具体的数值。那么我怎么开展后继的工作?1、确定采用公司测试环境,不用考虑环境问题。也就是说,客户端、服务端以及带宽等一系统都可以不用考虑,这是固定。
2、考虑此项目组以前开发过的系统性能情况,能否做为一个参考值。解决方案:找出本项目组以并发过二个项目,其性能个项指标进行求权。其中浏览功能:并发数为1100,平均响应时间363秒;每用户平均响应时间为0.33秒。每秒中并发3个用户。其中一系统用户已达500万,另一系统用户为320万。并且二系统一直运行正常,但目前的二系统的服务器各为3台。可以得出一台服务器为载166万,甚至更多。(因为服务器中有求权的关系)
3、100万用户,那么怎么计算出他的每小时峰值活动用户数?
解决方案:采用80•20原则计算得到每小时峰值活动用户数 6.667万/小时;那么每秒中的同一功能点点击并发数应该是18.5。
4、怎么得其并发数?
解决方案:本系统有多少个功能点?功能点为153个;也就是本系统在高峰值时一功能将被点击1258次,每秒点击0.35次。(不考虑间隔时间)考虑以前本项目组的数值。初步设置并发数为1100,主要以浏览功能为主、其次是查询和新增。
5、应该测试那种性能类型经再三考虑,三种性能都进行测试。
执行性能:
评测,依据性能指标确定中的第三点,将用户的并发设置为300-350,看其情况。负载测试,以1100为起点强度测试,为15小时和24小时为准
性能测试结果:
发现本系统最大用户支持为1100.失败用户最高为209,响应时间为315。可以判断此系统最大并发数为1100左右。也就说此系统在一台服务器上可支持150万用户数。
根据上述情况,可以得出:
1100用户并发时,用户一共响应时间为315秒(即每用户平均响应时间0.005秒),其中最高产生209个失败用户,但成功用户基本上可以完成后续操作,符合现系统要求的最大稳定用户数。由此可得出本系统在新增功能点中支持最大用户并发数为1100。按照1*100比例,计算得到每小时峰值活动用户数11万/小时;采用80•20原则计算得出本系统支持注册用户数约为165万。而本系统性能需求大规模支持100万注册用户,由上述的数据我们的系统已达到本系统性能需求。
注:100万,采用80•20原则计算得到每小时峰值活动用户数6.667万/小时。