SPONSORS:






User Tag List

Thanks Thanks:  0
Likes Likes:  0
Dislikes Dislikes:  0
Results 1 to 3 of 3
  1. #1
    Junior Member
    Join Date
    Oct 2008
    Posts
    4
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Total Downloaded
    0

    WCF impersonation in Loadrunner 9.5

    1. What version of LoadRunner (LR) or PerformanceCenter (PC) are you using? (specify which tool LR or PC)
    LR 9.52

    2. What is the protocol you are recording?
    Web Services

    2.1 If .NET, which version of .NET does the app require?

    2.2 If .NET, which version of .NET do you have installed?

    2.3 If OracleNCA with Oracle Forms Server, please list the version of Oracle Forms Server. You can get this info from the main Oracle Form when launched - Help -> About


    3. If HTML - are you using HTML-Advanced with URLs or,
    (indicate yes/no)

    4. If URL mode:
    - Concurrent groups, or
    - Without Concurrent groups?
    (indicate which)

    5. Which LoadRunner/PerformanceCenter feature (FPs) or service packs are you using?
    N/A

    6. VuGen Recording - are you using Old or New Recording Engine?
    New

    7. You must list here the specific Licensed Vuser type for your specific issue AND the license amount you have for your Vuser protocol(s) - per the example below (Unlimited, Permanent, N/A, etc. are not options) If you are using a cracked or hacked version, list as "CRACK".
    Web services - 4000

    8. Is your support/maintenance contract current and active?
    Yes

    9. What platform(s) (PCs) and Operating Systems (Windows-XP, etc.) are being used for load generators and controllers? Include version and service packs (SP1 or 2, etc.)
    Windows 2003

    10. If you have filed a service request with HP/Mercury, what have they told you at this point with respect to your issue?
    They are still investigating into this issue

    ************************************************** *********

    Hi
    I have imported the WSDL file for a WCF web service and generated a script from it. Upon playback i get one of two errors depending on various protocol and security settings that I set.

    Error 1: The server returned HTTP 401
    Error 2: The provided URI scheme 'https' is invalid; expected 'http'

    I have tried all possible binding settings and nothing seems to work. The only time I have seen the service work with a test tool so far is when we tried to test it with WCF test client (provided with VSTS 2008/2010) and it worked there when we set the endpoint behaviour mode at "Impersonate".

    1. Is it possible in anyway to set this value in Loadrunner?
    2. The web service uses WS2007HTTPBinding for windows. Is this binding compatible with Loadrunner?

    I have pasted the replay log below for your reference

    ************************************************** *****

    Virtual User Script started at : 2012-05-21 10:06:56
    Starting action vuser_init.
    Web Services replay version 9.51.0 for WIN2003; Toolkit: ".Net"; build 4288
    Run-Time Settings file: "E:\HP_LR_working-directory\Praveen\ValueService\\default.cfg"
    Vuser directory: "E:\HP_LR_working-directory\Praveen\ValueService"
    Vuser output directory: "E:\HP_LR_working-directory\Praveen\ValueService\"
    LOCAL start date/time: 2012-05-21 10:06:56
    Ending action vuser_init.
    Running Vuser...
    Starting iteration 1.
    Starting action Action.
    Action.c(6): Notify: Parameter Substitution: parameter "FQN" = "::XYZ"
    Action.c(6): Notify: Parameter Substitution: parameter "Id" = "00000000-0000-0000-0000-000000000004"
    Action.c(6): Notify: Parameter Substitution: parameter "TimeZone" = "UTC"
    Action.c(6): Notify: Parameter Substitution: parameter "Finish" = "2012-02-10T00:00:00.000"
    Action.c(6): Notify: Parameter Substitution: parameter "Points" = "10"
    Action.c(6): Notify: Parameter Substitution: parameter "Start" = "2012-02-01T00:00:00.000"
    Action.c(6): Notify: Parameter Substitution: parameter "UoMRequested" = "m3"
    Action.c(6): Web service call "ReadBulk_101" started
    Action.c(6): Creating handler
    Action.c(6): Searching for wcf router
    Action.c(6): Preparing router
    Action.c(6): POST https://amsdc1-s-42029.europe.xxx.co...uesService.svc
    Action.c(6): SOAPAction: http://www.xxx.com/ssp/dsl/values/v1...rvice/ReadBulk
    Action.c(6): Request Body:

    <?xml version="1.0" encoding="utf-16"?>
    <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing">
    <soap:Header>
    <Action soap:mustUnderstand="1" xmlns="http://www.w3.org/2005/08/addressing">http://www.xxx.com/ssp/dsl/values/v1...lt;/Action>
    <To soap:mustUnderstand="1" xmlns="http://www.w3.org/2005/08/addressing">https://amsdc1-s-42029.europe.xxx.co...svc</To>
    </soap:Header>
    <soap:Body>
    <ValuesRequestOf_ReadRequestDtoCollection xmlns="http://www.xxx.com/ssp/dsl/values/v1">
    <Data>
    <ReadRequest>
    <FullyQualifiedName>::XYZ</FullyQualifiedName>
    <Id>00000000-0000-0000-0000-000000000004</Id>
    <Status xsi:nil="true">
    </Status>
    <TimeZone>UTC</TimeZone>
    <Values xsi:nil="true">
    </Values>
    <Finish>2012-02-10T00:00:00</Finish>
    <Points>10</Points>
    <Start>2012-02-01T00:00:00</Start>
    <UomRequested>m3</UomRequested>
    </ReadRequest>
    </Data>
    </ValuesRequestOf_ReadRequestDtoCollection>
    </soap:Body>
    </soap:Envelope>


    Action.c(6): Sending request
    Action.c(6): Error: The provided URI scheme 'https' is invalid; expected 'http'.
    Parameter name: via
    at System.ServiceModel.Channels.TransportChannelFacto ry`1.ValidateScheme(Uri via)
    at System.ServiceModel.Channels.HttpChannelFactory.Va lidateCreateChannelParameters(EndpointAddress remoteAddress, Uri via)
    at System.ServiceModel.Channels.HttpChannelFactory.On CreateChannel(EndpointAddress remoteAddress, Uri via)
    at System.ServiceModel.Channels.ChannelFactoryBase`1. InternalCreateChannel(EndpointAddress address, Uri via)
    at System.ServiceModel.Channels.ChannelFactoryBase`1. CreateChannel(EndpointAddress address, Uri via)
    at System.ServiceModel.Channels.ClientReliableChannel Binder`1..ctor(EndpointAddress to, Uri via, IChannelFactory`1 factory, MaskingMode maskingMode, TolerateFaultsMode faultMode, ChannelParameterCollection channelParameters, TimeSpan defaultCloseTimeout, TimeSpan defaultSendTimeout)
    at System.ServiceModel.Channels.ClientReliableChannel Binder`1.CreateBinder(EndpointAddress to, Uri via, IChannelFactory`1 factory, MaskingMode maskingMode, TolerateFaultsMode faultMode, ChannelParameterCollection channelParameters, TimeSpan defaultCloseTimeout, TimeSpan defaultSendTimeout)
    at System.ServiceModel.Security.SecuritySessionClient Settings`1.ClientSecuritySessionChannel.Initialize ChannelBinder()
    at System.ServiceModel.Security.SecuritySessionClient Settings`1.ClientSecuritySessionChannel..ctor(Secu ritySessionClientSettings`1 settings, EndpointAddress to, Uri via)
    at System.ServiceModel.Security.SecuritySessionClient Settings`1.ClientSecuritySimplexSessionChannel..ct or(SecuritySessionClientSettings`1 settings, EndpointAddress to, Uri via)
    at System.ServiceModel.Security.SecuritySessionClient Settings`1.OnCreateChannel(EndpointAddress remoteAddress, Uri via, MessageFilter filter)
    at System.ServiceModel.Channels.SecurityChannelFactor y`1.OnCreateChannel(EndpointAddress address, Uri via)
    at System.ServiceModel.Channels.ChannelFactoryBase`1. InternalCreateChannel(EndpointAddress address, Uri via)
    at System.ServiceModel.Channels.ChannelFactoryBase`1. CreateChannel(EndpointAddress address, Uri via)
    at System.ServiceModel.Channels.ServiceChannelFactory .ServiceChannelFactoryOverRequestSession.CreateInn erChannelBinder(EndpointAddress to, Uri via)
    at System.ServiceModel.Channels.ServiceChannelFactory .CreateServiceChannel(EndpointAddress address, Uri via)
    at System.ServiceModel.Channels.ServiceChannelFactory .CreateChannel(Type channelType, EndpointAddress address, Uri via)
    at System.ServiceModel.ChannelFactory`1.CreateChannel (EndpointAddress address, Uri via)
    at System.ServiceModel.ChannelFactory`1.CreateChannel ()
    at HP.WcfRouter.WcfRouter.get_Client()
    at HP.WcfRouter.WcfRouter.HP.WcfRouter.IWcfRouter.DoR equest()
    Action.c(6): Error Exceptions:
    Action.c(6): System.Runtime.InteropServices.SEHException: External component has thrown an exception.
    at LrWsClientsLib.IWSReplayData.SetRequestBody(Array saBody)
    at Mercury.LR.WS.ProxyBase.LrWsWebRequest.SyncProcess Request()
    at Mercury.LR.WS.ProxyBase.LrWsWebRequest.OnRequestSt reamClosed(MemoryStream stream)
    at Mercury.LR.WS.ProxyBase.WSMemoryStream.Close()
    at Microsoft.Web.Services2.OutputStream.Close()
    at System.Web.Services.Protocols.SoapHttpClientProtoc ol.Invoke(String methodName, Object[] parameters)
    at Mercury.LR.NETProxy.ValuesService.ReadBulk(ValuesR equestOf_ReadRequestDtoCollection ValuesRequestOf_ReadRequestDtoCollection)
    at System.RuntimeMethodHandle._InvokeMethodFast(Objec t target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
    at System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
    at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
    at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
    at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters)
    at Mercury.LR.LrWsNetClient.ProxyCreator.InvokeMethod (String sMethod, IWSMethodParameters mParams, String sAsyncEvent)
    at Mercury.LR.LrWsNetClient.NetReplay.InvokeMethod(St ring sMethod, IWSMethodParameters mParams, String sAsyncEvent)
    Action.c(6): Error: InvokeMethod failure: External component has thrown an exception..
    Action.c(6): Error stack trace: at Mercury.LR.LrWsNetClient.ResultArgExtractor.Create XmlArgsDoc()
    at Mercury.LR.LrWsNetClient.ResultArgExtractor.Extrac tArgAsXml(String sArgPath, ArgumentExtractionType extractionType)
    at Mercury.LR.LrWsNetClient.ResultArgExtractor.Extrac tArg(String sArgPath, Boolean IsSaveResultArgumentsAsIs, ArgumentExtractionType extractionType)
    at Mercury.LR.LrWsNetClient.ProxyCreator.ExtractArg(S tring sArgPath, ArgumentExtractionType extractionType)
    at Mercury.LR.LrWsNetClient.NetReplay.ExtractResultAr g(String sArgPath, ArgumentExtractionType extractionType, Array& barrArgValue)
    Action.c(6): Error: ExtractResultArg failure: Object reference not set to an instance of an object..
    Action.c(6): Error: Web service call "ReadBulk_101" execution failed
    Ending action Action.
    Ending iteration 1.
    Ending Vuser...
    Starting action vuser_end.
    Ending action vuser_end.
    Vuser Terminate

    ***********************************************

    Any pointers or help in this regard would be greatly appreciated.

    P.S: I have also attached the config fie of the WCF service for your reference.

    Thanks & Regards
    Praveen
    Attached Files Attached Files

  2. #2
    Member
    Join Date
    Mar 2004
    Location
    India
    Posts
    78
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Total Downloaded
    0

    Re: WCF impersonation in Loadrunner 9.5

    Is it https or http?

    From config file it looks the services use "Integrated Windows authentication."

    I have tried it in LR11 and it worked for me. You can find the steps here.
    http://performancetestingsnippets.blogspot.com/
    No one can see beyond their choice!

  3. #3
    Junior Member
    Join Date
    Oct 2008
    Posts
    4
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Total Downloaded
    0

    Re: WCF impersonation in Loadrunner 9.5

    I have found the solution to the problem. LR currently does not provide options in the UI for incorporating Impersonation information in the protocol and security. I have checked this in both 9.5 and 11.00.

    However, based on suggestion from another member of this forum (Yaron), I could modify the .stss file found in the script folder and add the impersonation information in there.


    <identities>
    <client>
    <windowsCredentials allowedImpersonationLevel="Impersonation" />
    </client>
    </identities>

    Subsequently, the script started working.

 

 

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Search Engine Optimisation provided by DragonByte SEO v2.0.36 (Pro) - vBulletin Mods & Addons Copyright © 2016 DragonByte Technologies Ltd.
Resources saved on this page: MySQL 11.11%
vBulletin Optimisation provided by vB Optimise v2.6.4 (Pro) - vBulletin Mods & Addons Copyright © 2016 DragonByte Technologies Ltd.
User Alert System provided by Advanced User Tagging v3.2.8 (Pro) - vBulletin Mods & Addons Copyright © 2016 DragonByte Technologies Ltd.
vBNominate (Lite) - vBulletin Mods & Addons Copyright © 2016 DragonByte Technologies Ltd.
Feedback Buttons provided by Advanced Post Thanks / Like (Pro) - vBulletin Mods & Addons Copyright © 2016 DragonByte Technologies Ltd.
Username Changing provided by Username Change (Free) - vBulletin Mods & Addons Copyright © 2016 DragonByte Technologies Ltd.
BetaSoft Inc.
Digital Point modules: Sphinx-based search
All times are GMT -8. The time now is 11:20 AM.

Copyright BetaSoft Inc.