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

时间:2012-03-09 15:23:47

标签: ios push

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

2 个答案:

答案 0 :(得分:1)

你不能使用测试数据吗?您可以使用测试脚本填充数据库。像随机设备ID ..? Apple APS当然不会接受这些消息,但你可以测试你的能力,不是吗?

答案 1 :(得分:0)

我看到了你想要的东西,而且我确实遇到了同样的问题,对我有用的是逆向工程。 我只是查看了库并检查了验证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次。