Ios 负载测试apple推送通知服务器应用程序

Ios 负载测试apple推送通知服务器应用程序,ios,push,Ios,Push,我开发了一个服务器应用程序,可以向苹果服务器发送推送消息。我已经用几台设备对它进行了测试,我能够在设备上获取信息。问题是,当我的数据库中有大约一百万台设备时,我无法知道我的应用程序将如何运行。在这种情况下,有没有办法对服务器应用程序进行负载测试 您不能使用测试数据吗?您可以使用测试脚本填充数据库。像随机设备ID。。?苹果APS当然不会接受这些信息,但你可以测试你的能力,不是吗 我知道你想要什么,相反,我确实面临同样的问题,对我有效的是逆向工程。 我只是查看了库并检查了验证deviceToken的

我开发了一个服务器应用程序,可以向苹果服务器发送推送消息。我已经用几台设备对它进行了测试,我能够在设备上获取信息。问题是,当我的数据库中有大约一百万台设备时,我无法知道我的应用程序将如何运行。在这种情况下,有没有办法对服务器应用程序进行负载测试

您不能使用测试数据吗?您可以使用测试脚本填充数据库。像随机设备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}
,不是吗?