Как протестировать веб-сервис WCF с помощью JMeter? - PullRequest
7 голосов
/ 27 апреля 2011

У меня есть веб-служба WCF, размещенная на IIS, которая предоставляет один метод, который принимает три целочисленных параметра.У меня есть простой консольный клиент, который может вызвать этот метод.

int InsertNewOrder(short quantity, int custID, int productID);

Если мое понимание верно, мне нужно предоставить JMeter конверт SOAP с подробной информацией о вызываемом методе и передаваемых параметрах.Я видел много примеров, подобных приведенным ниже:

<soapenv:Envelope xmlns:soapenv="schemas.xmlsoap.org/soap/envelope/">; 
<soapenv:Body>
<ns2:InsertNewOrder xmlns:ns2="?????"> 
<ns2:Param1>${1}</ns2:Param1> 
<ns2:Param1>${1}</ns2:Param1> 
<ns2:Param1>${1}</ns2:Param1> 
</ns2:InsertNewOrder>  
</soapenv:Body>
</soapenv:Envelope>

Однако, глядя на мой документ WSDL, я не вижу, где он ссылается на какие-либо параметры, необходимые для передачи в метод.Я также использовал Fiddler для проверки сообщений мыла клиента в сервис.Опять же, я не вижу, куда он передает параметры.В результате я не знаю, как создать простой конверт SOAP, который я могу использовать с JMeter для тестирования этой службы.

Может кто-нибудь посоветовать, почему документ WSDL не предоставляет никаких подробностей о параметрах метода, или объясните, как я могу создать необходимый конверт SOAP для использования с JMeter?

Я пишу код на C #, используя VS 2010, JMeter 2.4, IIS v6, wsHttpBinding.

Ответы [ 2 ]

6 голосов
/ 28 апреля 2011

Отказ от ответственности: я не эксперт WSDL, поэтому я не могу сказать вам, почему документ не предоставляет подробностей.

Для создания конверта SOAP для JMeter я использовал бесплатную версию soapUI.

Steps:
1. Import WSDL into soap
2. Create a default request for the method
3. Set the request view to RAW, and copy into JMeter

Это дает мне всю информацию, необходимую для jmeter, включая параметры, пользовательский агент, конечную точку и т. Д.

2 голосов
/ 30 сентября 2011

Используйте «HTTP Proxy Server» JMeter для записи вызовов WCF с обычным тестовым клиентом, а затем воспроизводите их позже при тестировании. Это то, что я испытал, чтобы быть самым быстрым, и дает лучшие тестовые случаи (потому что вы записываете их со своим обычным клиентом или выбранным клиентом тестирования).

Установите прокси-сервер JMeters HTTP как в соответствии с инструкциями . Затем убедитесь, что клиент WCF (или любой SOAP) использует этот прокси. Важной частью конфигурации клиента WCF является (замените мой ... обычным конфигом):

<system.serviceModel>
    <bindings>
    ...
    <wsHttpBinding>
    <binding ...  proxyAddress="http://proxyServerName:8080" useDefaultWebProxy="false" ...>
    ...
        <security mode="None">
            <message establishSecurityContext="false"/>
            <transport clientCredentialType="None"/>
        </security>

proxyServerName - это localhost, если клиент WCF работает на том же компьютере, что и JMeter (нормально при создании тестовых случаев).

Кроме того, я получил сообщение об ошибке, используя HTTP-прокси, если я не отключил защиту, как показано выше. Те же параметры безопасности также должны быть на сервере службы WCF.

Счастливого тестирования! : -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...