【发布时间】:2012-03-27 01:11:30
【问题描述】:
我开发了一个服务器应用程序,可以将推送消息发送到苹果服务器。我已经用几台设备对其进行了测试,并且能够在设备上获取消息。问题是,当我的数据库中有大约一百万台设备时,我无法知道我的应用程序将如何执行。在这种情况下,有没有办法对您的服务器应用程序进行负载测试。
【问题讨论】:
我开发了一个服务器应用程序,可以将推送消息发送到苹果服务器。我已经用几台设备对其进行了测试,并且能够在设备上获取消息。问题是,当我的数据库中有大约一百万台设备时,我无法知道我的应用程序将如何执行。在这种情况下,有没有办法对您的服务器应用程序进行负载测试。
【问题讨论】:
我明白你想要什么,相反,我确实遇到了同样的问题,对我有用的是逆向工程。 我只是查看了库并检查了验证 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()
}
apple deviceToken 有 64 个字符,因此您需要对其进行 64 次迭代。
【讨论】:
400 {'reason': 'BadDeviceToken'},不是吗?
您不能使用测试数据吗?您可以使用测试脚本填充数据库。像随机设备ID ..? Apple APS 当然不会接受这些消息,但你可以测试你的能力,不是吗?
【讨论】: