51Testing软件测试论坛

标题: 新一代的性能测试工具Netgend介绍: 社交网络的性能测试 [打印本页]

作者: appsectesting    时间: 2013-12-10 22:40
标题: 新一代的性能测试工具Netgend介绍: 社交网络的性能测试
社交网络的性能测试--用户位置更新模拟


        社交网络目前已经非常普遍和流行,这个依赖于无所不在的智能手机和其应用。很多智能手机应用程序依赖于用户的位置信息来推荐餐馆或商店。这是今天我们着重要聊的:为什么要做社交网了应用的性能测试?

        为了让服务器推送建议,他们需要知道用户的当前位置。因此,智能手机的应用程序将需要随着用户的位置移动,而定期发送位置更新。可以想象一下:如果你的服务器需要处理数以百万计的智能手机周期发送的位置更新信息,并通过运行一套算法查询相应的数据库以获得建议,最后把查询的结果送回给用户,整个过程对服务器的压力是非常大的。所以,在这些服务开放给用户之前,对整个应用服务架构(网络服务器及其后端)进行全面完善的性能测试是非常重要而且必要的。

        那么我们如何对这种社交网络应用程序做性能测试呢? 如果只是简单地模仿了很多用户,并发送一些虚拟位置信息,可能不会得到很好的效果。为了更好地测试这样的系统,尤其是其算法,我们需要模拟大量用户以一种更逼真的方式四处移动并发送位置更新信息。

        Netgend平台不仅可以在一个miniPC系统上模拟5万个用户,它也可以模拟出用户的灵活性和真实性。首先我们要准备一个表示地图信息的csv文件。举一个例子,基于下面的这个小地图上,我们的csv文件将有9个交叉点(编号为1, 2,... 9,从左到右,从上到下)。每一个点有它的纬度和经度。街道段连接这些交叉点。例如,“ 1,2 ”是指连接交叉点1和2中的街道段。 “ 1,4 ”是指连接交叉点1和4中的街道段。共有12个街道段在这里。

[attach]88364[/attach]

下面是这个地图文件的示例:
1,30.26952,-97.740812   
2,30.269112,-97.739675   
3,30.268871,-97.738624   
4,30.268538,-97.741113   
....

1,2   
1,4   
2,3   
2,5   
3,6   
....



        现在向大家介绍一下我们的脚本来如何模拟那些用户的漫游和发送位置更新信息:
function userInit() {         
loadMap("streets.csv");   
}   
function VUSER() {         
position = randPosition();        
//some steps to sign in, omitted here      
while (1) {              
  move(position, 30);   //move 30 feet            
  p = getLoc(position);              
  http.POSTData = q|{"latitude": ${p[0]}, "longtitude": ${p[1]} }|;              
  action(http, "http://www.example.com/uploadLocation");         
  sleep(10000);  //waiting 10 second      
  }  
}



          在上面的脚本中,我们首先使用功能 ”loadMap” 从”Street.csv”文件中创建一个隐性地图。测试开始之前首先完成这个动作。
          在VUser脚本部分(由每个模拟用户执行),我们从一个随机位置开始,然后我们每10秒种移动30英尺,并且更新我们的经度和纬度。这个功能是由两个函数“ randPosition()”和“Move( )”做到的。

randPosition ( ) :它会随机挑选出一个交叉点(路口),然后找到它的相邻交叉点中的一个,这两个交点确定了一个街道(段) 。模拟用户将从最初挑选的交叉点向其相邻交叉点移动。然后,它会在这个街道段上选择一个随机点,并将这个随机点的坐标信息返回给这个模拟用户的“位置”变量。
move( )将按照指定的距离(以英尺计)移动用户的位置,并更新其内部坐标。如果用户来到一个街道段的终点,即来到一个十字路口,它将使用新的交叉点作为起点,并随机挑选它的邻居交叉点之一(除去它来自的那个路口),并继续移动。
当然,还有很多的方法可以使这种位置更新更加切合实际情况(当然也会更加复杂):使每个移动用户用不同的速度移动;使每个用户走向一个随机选择的目的地,等等。 这些情况,都可以在Netgend测试平台得到支持。

社交网络将会持续是我们的热门应用,你的应用服务基础架构准备好了吗?
作者: 城邦    时间: 2013-12-16 14:38
支持~




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2