нагрузочное тестирование приложения сервера push-уведомлений Apple - PullRequest
1 голос
/ 09 марта 2012

Я разработал серверное приложение, которое может отправлять push-сообщения на серверы Apple.Я проверил это с несколькими устройствами, и я могу получить сообщения на устройстве.Проблема в том, что у меня нет возможности узнать, как будет работать мое приложение, когда в моей базе данных будет около миллиона устройств.Есть ли способ загрузить тестовое приложение вашего сервера в этом сценарии.

Ответы [ 2 ]

1 голос
/ 09 марта 2012

Не могли бы вы использовать тестовые данные? Вы можете заполнить свою базу данных тестовым скриптом. Как случайные идентификаторы устройств ..? Apple APS, конечно, не будет принимать сообщения, но вы можете проверить свои возможности, не так ли?

0 голосов
/ 05 июля 2013

Я вижу, что вы хотите, и, скорее, я столкнулся с той же проблемой, что для меня сработало - обратный инжиниринг.Я просто заглянул в библиотеку и проверил функцию, которая проверяет 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 раза.

...