Ios 负载测试apple推送通知服务器应用程序
我开发了一个服务器应用程序,可以向苹果服务器发送推送消息。我已经用几台设备对它进行了测试,我能够在设备上获取信息。问题是,当我的数据库中有大约一百万台设备时,我无法知道我的应用程序将如何运行。在这种情况下,有没有办法对服务器应用程序进行负载测试 您不能使用测试数据吗?您可以使用测试脚本填充数据库。像随机设备ID。。?苹果APS当然不会接受这些信息,但你可以测试你的能力,不是吗 我知道你想要什么,相反,我确实面临同样的问题,对我有效的是逆向工程。 我只是查看了库并检查了验证deviceToken的函数。因此,在创建虚拟设备令牌时,我只是确保生成的令牌根据库是有效的 下面的代码将允许您生成有效的设备令牌,现在取决于使用此函数生成的令牌数量Ios 负载测试apple推送通知服务器应用程序,ios,push,Ios,Push,我开发了一个服务器应用程序,可以向苹果服务器发送推送消息。我已经用几台设备对它进行了测试,我能够在设备上获取信息。问题是,当我的数据库中有大约一百万台设备时,我无法知道我的应用程序将如何运行。在这种情况下,有没有办法对服务器应用程序进行负载测试 您不能使用测试数据吗?您可以使用测试脚本填充数据库。像随机设备ID。。?苹果APS当然不会接受这些信息,但你可以测试你的能力,不是吗 我知道你想要什么,相反,我确实面临同样的问题,对我有效的是逆向工程。 我只是查看了库并检查了验证deviceToken的
def generateRandomDeviceTokenAndAppendItToJson(tokenLength: Int) {
val randomlyGeneratedDeviceToken = new StringBuilder()
randomlyGeneratedDeviceToken.append(" \"")
(1 to tokenLength) foreach {
times: Int =>
if (tokenLength equals Device.Apple)
randomlyGeneratedDeviceToken.append(validCharacter().toString.charAt(0))
else
randomlyGeneratedDeviceToken.append(Random.alphanumeric.head)
}
randomlyGeneratedDeviceToken.append("\",")
println(randomlyGeneratedDeviceToken)
writer.write(randomlyGeneratedDeviceToken.toString())
}
private def validCharacter(): Int = {
val a = Random.alphanumeric.head
if ('0' <= a && a <= '9')
return (a - '0')
else if ('a' <= a && a <= 'f')
return ((a - 'a') + 10)
else if ('A' <= a && a <= 'F')
return ((a - 'A') + 10)
validCharacter()
}
def generateRandomDeviceTokenAndAppendItToJson(令牌长度:Int){
val randomlyGeneratedDeviceToken=新建StringBuilder()
randomlyGeneratedDeviceToken.append(“\”)
(1到标记长度)foreach{
时间:Int=>
if(令牌长度等于Device.Apple)
randomlyGeneratedDeviceToken.append(validCharacter().toString.charAt(0))
其他的
randomlyGeneratedDeviceToken.append(Random.alphanumeric.head)
}
randomlyGeneratedDeviceToken.append(“\”,”)
println(随机生成设备)
writer.write(randomlyGeneratedDeviceToken.toString())
}
私有def validCharacter():Int={
val a=随机字母数字头
如果('0',我可以这样做,但这就像向苹果发送100万条消息到无效的设备id。苹果服务器是否有可能以某种方式将其视为某种攻击(尝试加载服务器将导致无效请求)并一起阻止我们的应用程序。您也可以只使用所有可以获取的设备,并将其ID多次插入数据库。您将获得大量推送通知:)在理想情况下,我希望虚拟服务器运行在与苹果相同的端口上,这会吞噬掉所有扔到它身上的东西。这样我就可以测试我的应用程序,而不会打扰苹果。当然,我在这里做了一些小假设,但我认为这已经接近生产环境了。苹果拒绝了这些代币APN和400{'reason':'BadDeviceToken}
,不是吗?