Nytt webtest plugin ClientCertificatePlugin som sätter ett angivet client cert p…
…å alla request och automatiskt importerar det till certstore på maskinen om det inte finns.
Showing
5 changed files
with
230 additions
and
10 deletions
1 | using System.Reflection; | 1 | using System.Resources; |
2 | using System.Reflection; | ||
2 | using System.Runtime.CompilerServices; | 3 | using System.Runtime.CompilerServices; |
3 | using System.Runtime.InteropServices; | 4 | using System.Runtime.InteropServices; |
4 | 5 | ||
... | @@ -9,8 +10,8 @@ using System.Runtime.InteropServices; | ... | @@ -9,8 +10,8 @@ using System.Runtime.InteropServices; |
9 | [assembly: AssemblyDescription("Plugins for Web and Load Tests")] | 10 | [assembly: AssemblyDescription("Plugins for Web and Load Tests")] |
10 | [assembly: AssemblyConfiguration("")] | 11 | [assembly: AssemblyConfiguration("")] |
11 | [assembly: AssemblyCompany("LIGHTS IN LINE AB")] | 12 | [assembly: AssemblyCompany("LIGHTS IN LINE AB")] |
12 | [assembly: AssemblyProduct("Visual Studio 2010 Ultimate")] | 13 | [assembly: AssemblyProduct("Visual Studio 2015 Enterprise")] |
13 | [assembly: AssemblyCopyright("© LIGHTS IN LINE AB 2014")] | 14 | [assembly: AssemblyCopyright("© LIGHTS IN LINE AB 2016")] |
14 | [assembly: AssemblyTrademark("All Rights Reserved")] | 15 | [assembly: AssemblyTrademark("All Rights Reserved")] |
15 | [assembly: AssemblyCulture("")] | 16 | [assembly: AssemblyCulture("")] |
16 | 17 | ||
... | @@ -34,3 +35,5 @@ using System.Runtime.InteropServices; | ... | @@ -34,3 +35,5 @@ using System.Runtime.InteropServices; |
34 | // [assembly: AssemblyVersion("1.0.*")] | 35 | // [assembly: AssemblyVersion("1.0.*")] |
35 | [assembly: AssemblyVersion("1.3.0.0")] | 36 | [assembly: AssemblyVersion("1.3.0.0")] |
36 | [assembly: AssemblyFileVersion("1.3.0.0")] | 37 | [assembly: AssemblyFileVersion("1.3.0.0")] |
38 | [assembly: NeutralResourcesLanguage("sv-SE")] | ||
39 | ... | ... |
... | @@ -8,6 +8,7 @@ using Microsoft.VisualStudio.TestTools.LoadTesting; | ... | @@ -8,6 +8,7 @@ using Microsoft.VisualStudio.TestTools.LoadTesting; |
8 | using System.IO; | 8 | using System.IO; |
9 | using System.ComponentModel; | 9 | using System.ComponentModel; |
10 | using System.Text.RegularExpressions; | 10 | using System.Text.RegularExpressions; |
11 | using System.Security.Cryptography.X509Certificates; | ||
11 | 12 | ||
12 | namespace LIL_VSTT_Plugins | 13 | namespace LIL_VSTT_Plugins |
13 | { | 14 | { |
... | @@ -540,6 +541,178 @@ namespace LIL_VSTT_Plugins | ... | @@ -540,6 +541,178 @@ namespace LIL_VSTT_Plugins |
540 | } | 541 | } |
541 | } | 542 | } |
542 | 543 | ||
544 | /// <summary> | ||
545 | /// WebTest Client Certificate | ||
546 | /// </summary> | ||
547 | [DisplayName("Client Certificate")] | ||
548 | [Description("(C) Copyright 2016 LIGHTS IN LINE AB\r\nSätter webtestet att använda ett specifikt client cert för SSL. Certifikatet behöver inte installeras i certstore först.")] | ||
549 | public class ClientCertificatePlugin : WebTestPlugin | ||
550 | { | ||
551 | [DisplayName("Certificate Path")] | ||
552 | [Description("Sökvägen till certifikatfilen (P12/PFX med privat nyckel)")] | ||
553 | [DefaultValue("")] | ||
554 | public string pCertificatePath { get; set; } | ||
555 | |||
556 | [DisplayName("Certificate Path Parameter")] | ||
557 | [Description("Ange namn på parameter som ska användas för sökvägen till certifikatfilen (P12/PFX). Om parametern saknas eller är tom används Certificate Path")] | ||
558 | [DefaultValue("")] | ||
559 | public string pCertificatePathParameter { get; set; } | ||
560 | |||
561 | [DisplayName("Certificate Password")] | ||
562 | [Description("Ange lösenordet för att öppna certifikatfilen")] | ||
563 | [DefaultValue("")] | ||
564 | public string pCertificatePassword { get; set; } | ||
565 | |||
566 | [DisplayName("Certificate Password Parameter")] | ||
567 | [Description("Ange namn på parameter som ska användas för lösenordet till certifikatfilen. Om parametern saknas eller är tom används Certificate Password")] | ||
568 | [DefaultValue("")] | ||
569 | public string pCertificatePasswordParameter { get; set; } | ||
570 | |||
571 | [DisplayName("Log Certificate Data")] | ||
572 | [Description("Sätt till True om certifikatinfo ska loggas i början av varje test")] | ||
573 | [DefaultValue(false)] | ||
574 | public bool pDebug { get; set; } | ||
575 | |||
576 | [DisplayName("Install trusted certificates")] | ||
577 | [Description("Sätt till True om certifikat ska installeras automatiskt om det är giltigt")] | ||
578 | [DefaultValue(false)] | ||
579 | public bool pInstallTrusted { get; set; } | ||
580 | |||
581 | [DisplayName("Install untrusted certificates")] | ||
582 | [Description("Sätt till True om ogiltiga som giltiga certifikat ska installeras automatiskt")] | ||
583 | [DefaultValue(false)] | ||
584 | public bool pInstallUntrusted { get; set; } | ||
585 | |||
586 | private bool haveCert = false; | ||
587 | private X509Certificate myClientCert; | ||
588 | |||
589 | public override void PreWebTest(object sender, PreWebTestEventArgs e) | ||
590 | { | ||
591 | base.PreWebTest(sender, e); | ||
592 | String certPath, certPass; | ||
593 | // Ladda in certifikatet och sätt CertPolicy | ||
594 | |||
595 | if (!String.IsNullOrWhiteSpace(pCertificatePathParameter) && e.WebTest.Context.ContainsKey(pCertificatePathParameter) && !String.IsNullOrWhiteSpace(e.WebTest.Context[pCertificatePathParameter].ToString()) ) | ||
596 | { | ||
597 | certPath = e.WebTest.Context[pCertificatePathParameter].ToString(); | ||
598 | } else | ||
599 | { | ||
600 | certPath = pCertificatePath; | ||
601 | } | ||
602 | |||
603 | if (!String.IsNullOrWhiteSpace(pCertificatePasswordParameter) && e.WebTest.Context.ContainsKey(pCertificatePasswordParameter) && !String.IsNullOrWhiteSpace(e.WebTest.Context[pCertificatePasswordParameter].ToString())) | ||
604 | { | ||
605 | certPass = e.WebTest.Context[pCertificatePasswordParameter].ToString(); | ||
606 | } | ||
607 | else | ||
608 | { | ||
609 | certPass = pCertificatePassword; | ||
610 | } | ||
611 | |||
612 | if(string.IsNullOrWhiteSpace(certPass)) | ||
613 | { | ||
614 | // Cant continue, cert is missing | ||
615 | if (pDebug) e.WebTest.AddCommentToResult("No certificate loaded, since both Certificate Path and Certificate Path Parameter are empty"); | ||
616 | return; | ||
617 | } | ||
618 | |||
619 | try { | ||
620 | myClientCert = new X509Certificate(certPath, certPass); | ||
621 | } catch (Exception ex) | ||
622 | { | ||
623 | if (pDebug) e.WebTest.AddCommentToResult("Exception during loading of certificate: " + certPath + " Exception: " + ex.Message); | ||
624 | return; | ||
625 | } | ||
626 | |||
627 | if(myClientCert == null) { | ||
628 | if (pDebug) e.WebTest.AddCommentToResult("Certificate File " + certPath + " could not be loaded."); | ||
629 | return; | ||
630 | } else | ||
631 | { | ||
632 | if (pDebug) e.WebTest.AddCommentToResult("Certificate File " + certPath); | ||
633 | } | ||
634 | |||
635 | if (!string.IsNullOrWhiteSpace(myClientCert.GetCertHashString())) | ||
636 | { | ||
637 | if (pDebug) e.WebTest.AddCommentToResult("Loaded client certificate for Subject: [" + myClientCert.Subject + "] Issued by: [" + myClientCert.Issuer + "] Expires: [" + myClientCert.GetExpirationDateString() + "]"); | ||
638 | |||
639 | // Check if the certificate is trusted (i.e. chain can be validated) | ||
640 | bool myCertTrusted = false; | ||
641 | X509Certificate2 cer = new X509Certificate2(certPath, certPass, X509KeyStorageFlags.PersistKeySet); | ||
642 | cer.FriendlyName = "VSTT"; | ||
643 | if (cer.Verify()) | ||
644 | { | ||
645 | if (pDebug) e.WebTest.AddCommentToResult("Certificate is TRUSTED"); | ||
646 | myCertTrusted = true; | ||
647 | } else | ||
648 | { | ||
649 | if (pDebug) e.WebTest.AddCommentToResult("Waring: Certificate is NOT TRUSTED by client. Might not be trusted on server either. Check that the Issuer/CA root and intermediary certificates are installed on the client and server."); | ||
650 | myCertTrusted = false; | ||
651 | } | ||
652 | |||
653 | // Check if we have a private key | ||
654 | if (!cer.HasPrivateKey) | ||
655 | { | ||
656 | // Cant use it without private key | ||
657 | if (pDebug) e.WebTest.AddCommentToResult("Certificate HAS NO PRIVATE KEY, cannot use it without one."); | ||
658 | return; | ||
659 | } else | ||
660 | { | ||
661 | if (pDebug) e.WebTest.AddCommentToResult("Certificate HAS PRIVATE KEY"); | ||
662 | } | ||
663 | |||
664 | // Check that the certificate exists in the cert store | ||
665 | X509Store cuStore = new X509Store(); | ||
666 | cuStore.Open(OpenFlags.ReadWrite); | ||
667 | if(cuStore.Certificates.Contains(cer)) { | ||
668 | if (pDebug) e.WebTest.AddCommentToResult("Certificate is INSTALLED"); | ||
669 | } else | ||
670 | { | ||
671 | if (pDebug) e.WebTest.AddCommentToResult("Certificate is NOT INSTALLED"); | ||
672 | if(pInstallTrusted && myCertTrusted || pInstallUntrusted) | ||
673 | { | ||
674 | // Try to install certificate | ||
675 | if (myCertTrusted || !myCertTrusted) | ||
676 | { | ||
677 | // Install in user store | ||
678 | try { | ||
679 | cuStore.Add(cer); | ||
680 | if (pDebug) e.WebTest.AddCommentToResult("Certificate HAS BEEN INSTALLED in the Windows Certificate Store"); | ||
681 | } catch (Exception ex) | ||
682 | { | ||
683 | if (pDebug) e.WebTest.AddCommentToResult("Error: COULD NOT INSTALL in the Windows Certificate Store, Exception: " + ex.Message); | ||
684 | return; | ||
685 | } | ||
686 | } | ||
687 | } | ||
688 | } | ||
689 | |||
690 | // Set the PreRequest method to add the certificate on requests | ||
691 | haveCert = true; | ||
692 | if (pDebug) e.WebTest.AddCommentToResult("Certificate will be ADDED TO REQUESTS"); | ||
693 | } else | ||
694 | { | ||
695 | if (pDebug) e.WebTest.AddCommentToResult("Certificate File " + certPath + " contains no SHA1 hash. Not using it."); | ||
696 | return; | ||
697 | } | ||
698 | } | ||
699 | |||
700 | public override void PreRequest(object sender, PreRequestEventArgs e) | ||
701 | { | ||
702 | base.PreRequest(sender, e); | ||
703 | if (haveCert) | ||
704 | { | ||
705 | if (!e.Request.ClientCertificates.Contains(myClientCert)) | ||
706 | { | ||
707 | e.Request.ClientCertificates.Add(myClientCert); | ||
708 | } | ||
709 | e.WebTest.Context["Client Certificate"] = myClientCert.Subject; | ||
710 | } else | ||
711 | { | ||
712 | e.WebTest.Context["Client Certificate"] = "No certificate was added"; | ||
713 | } | ||
714 | } | ||
715 | } | ||
543 | 716 | ||
544 | /* | 717 | /* |
545 | /// <summary> | 718 | /// <summary> |
... | @@ -549,6 +722,16 @@ namespace LIL_VSTT_Plugins | ... | @@ -549,6 +722,16 @@ namespace LIL_VSTT_Plugins |
549 | [Description("(C) Copyright 2011 LIGHTS IN LINE AB\r\nFörklaring")] | 722 | [Description("(C) Copyright 2011 LIGHTS IN LINE AB\r\nFörklaring")] |
550 | public class myPlugin : WebTestPlugin | 723 | public class myPlugin : WebTestPlugin |
551 | { | 724 | { |
725 | private string paramName; | ||
726 | [DisplayName("Parameter namn")] | ||
727 | [Description("Ange namnet på parametern i ditt webtest, tex TimeStampParameter1")] | ||
728 | [DefaultValue("TimeStampParameter1")] | ||
729 | public string ParamNameVal | ||
730 | { | ||
731 | get { return paramName; } | ||
732 | set { paramName = value; } | ||
733 | } | ||
734 | |||
552 | public override void PreWebTest(object sender, PreWebTestEventArgs e) | 735 | public override void PreWebTest(object sender, PreWebTestEventArgs e) |
553 | { | 736 | { |
554 | base.PreWebTest(sender, e); | 737 | base.PreWebTest(sender, e); | ... | ... |
... | @@ -46,6 +46,10 @@ | ... | @@ -46,6 +46,10 @@ |
46 | <Prefer32Bit>false</Prefer32Bit> | 46 | <Prefer32Bit>false</Prefer32Bit> |
47 | </PropertyGroup> | 47 | </PropertyGroup> |
48 | <ItemGroup> | 48 | <ItemGroup> |
49 | <Reference Include="LIL_VSTT_Plugins, Version=1.3.0.0, Culture=neutral, processorArchitecture=MSIL"> | ||
50 | <HintPath>..\LIL_VSTT_Plugins\bin\Debug\LIL_VSTT_Plugins.dll</HintPath> | ||
51 | <SpecificVersion>False</SpecificVersion> | ||
52 | </Reference> | ||
49 | <Reference Include="Microsoft.VisualStudio.QualityTools.LoadTestFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> | 53 | <Reference Include="Microsoft.VisualStudio.QualityTools.LoadTestFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> |
50 | <Private>False</Private> | 54 | <Private>False</Private> |
51 | </Reference> | 55 | </Reference> |
... | @@ -87,6 +91,10 @@ | ... | @@ -87,6 +91,10 @@ |
87 | <None Include="WebTest21.webtest"> | 91 | <None Include="WebTest21.webtest"> |
88 | <CopyToOutputDirectory>Always</CopyToOutputDirectory> | 92 | <CopyToOutputDirectory>Always</CopyToOutputDirectory> |
89 | </None> | 93 | </None> |
94 | <None Include="WebTest4.webtest"> | ||
95 | <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> | ||
96 | <SubType>Designer</SubType> | ||
97 | </None> | ||
90 | <None Include="WebTest3.webtest"> | 98 | <None Include="WebTest3.webtest"> |
91 | <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> | 99 | <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> |
92 | </None> | 100 | </None> |
... | @@ -97,12 +105,6 @@ | ... | @@ -97,12 +105,6 @@ |
97 | <CopyToOutputDirectory>Always</CopyToOutputDirectory> | 105 | <CopyToOutputDirectory>Always</CopyToOutputDirectory> |
98 | </None> | 106 | </None> |
99 | </ItemGroup> | 107 | </ItemGroup> |
100 | <ItemGroup> | ||
101 | <ProjectReference Include="..\LIL_VSTT_Plugins\LIL_VSTT_Plugins.csproj"> | ||
102 | <Project>{06A22593-601E-4386-917A-9835DE30E14E}</Project> | ||
103 | <Name>LIL_VSTT_Plugins</Name> | ||
104 | </ProjectReference> | ||
105 | </ItemGroup> | ||
106 | <Choose> | 108 | <Choose> |
107 | <When Condition="'$(VisualStudioVersion)' == '10.0' And '$(IsCodedUITest)' == 'True'"> | 109 | <When Condition="'$(VisualStudioVersion)' == '10.0' And '$(IsCodedUITest)' == 'True'"> |
108 | <ItemGroup> | 110 | <ItemGroup> | ... | ... |
1 | <?xml version="1.0" encoding="utf-8"?> | 1 | <?xml version="1.0" encoding="utf-8"?> |
2 | <WebTest Name="WebTest3" Id="5f8fe34b-e853-4a88-95cb-a8e963383b09" Owner="" Priority="2147483647" Enabled="True" CssProjectStructure="" CssIteration="" Timeout="0" WorkItemIds="" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010" Description="" CredentialUserName="" CredentialPassword="" PreAuthenticate="True" Proxy="default" StopOnError="False" RecordedResultFile="" ResultsLocale=""> | 2 | <WebTest Name="WebTest3" Id="f36a8078-a24b-41a0-ac62-678ed0b4ac50" Owner="" Priority="2147483647" Enabled="True" CssProjectStructure="" CssIteration="" Timeout="0" WorkItemIds="" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010" Description="" CredentialUserName="" CredentialPassword="" PreAuthenticate="True" Proxy="default" StopOnError="False" RecordedResultFile="" ResultsLocale=""> |
3 | <Items> | 3 | <Items> |
4 | <Request Method="GET" Guid="359feba0-105f-4dbf-a630-32d640c10817" Version="1.1" Url="https://new.vinnarum.com/" ThinkTime="0" Timeout="300" ParseDependentRequests="False" FollowRedirects="True" RecordResult="True" Cache="False" ResponseTimeGoal="0" Encoding="utf-8" ExpectedHttpStatusCode="0" ExpectedResponseUrl="" ReportingName="" IgnoreHttpStatusCode="False" /> | 4 | <Request Method="GET" Guid="359feba0-105f-4dbf-a630-32d640c10817" Version="1.1" Url="https://new.vinnarum.com/" ThinkTime="0" Timeout="300" ParseDependentRequests="False" FollowRedirects="True" RecordResult="True" Cache="False" ResponseTimeGoal="0" Encoding="utf-8" ExpectedHttpStatusCode="0" ExpectedResponseUrl="" ReportingName="" IgnoreHttpStatusCode="False" /> |
5 | <Request Method="GET" Guid="359feba0-105f-4dbf-a630-32d640c10817" Version="1.1" Url="https://new.vinnarum.com/" ThinkTime="0" Timeout="300" ParseDependentRequests="False" FollowRedirects="True" RecordResult="True" Cache="False" ResponseTimeGoal="0" Encoding="utf-8" ExpectedHttpStatusCode="0" ExpectedResponseUrl="" ReportingName="" IgnoreHttpStatusCode="False" /> | 5 | <Request Method="GET" Guid="359feba0-105f-4dbf-a630-32d640c10817" Version="1.1" Url="https://new.vinnarum.com/" ThinkTime="0" Timeout="300" ParseDependentRequests="False" FollowRedirects="True" RecordResult="True" Cache="False" ResponseTimeGoal="0" Encoding="utf-8" ExpectedHttpStatusCode="0" ExpectedResponseUrl="" ReportingName="" IgnoreHttpStatusCode="False" /> | ... | ... |
TestProject1/WebTest4.webtest
0 → 100644
1 | <?xml version="1.0" encoding="utf-8"?> | ||
2 | <WebTest Name="WebTest4" Id="5f8fe34b-e853-4a88-95cb-a8e963383b09" Owner="" Priority="2147483647" Enabled="True" CssProjectStructure="" CssIteration="" Timeout="0" WorkItemIds="" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010" Description="" CredentialUserName="" CredentialPassword="" PreAuthenticate="True" Proxy="default" StopOnError="False" RecordedResultFile="" ResultsLocale=""> | ||
3 | <Items> | ||
4 | <Request Method="POST" Guid="60e123b6-6947-47f0-85cb-473647f73db1" Version="1.1" Url="https://ppdmzkw2/nak1/na_epersondata/V2/namnsokning" ThinkTime="0" Timeout="300" ParseDependentRequests="True" FollowRedirects="True" RecordResult="True" Cache="False" ResponseTimeGoal="0" Encoding="utf-8" ExpectedHttpStatusCode="0" ExpectedResponseUrl="" ReportingName="" IgnoreHttpStatusCode="False"> | ||
5 | <StringHttpBody ContentType="text/xml" InsertByteOrderMark="False">PABzAG8AYQBwAGUAbgB2ADoARQBuAHYAZQBsAG8AcABlACAAeABtAGwAbgBzADoAcwBvAGEAcABlAG4AdgA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AeABtAGwAcwBvAGEAcAAuAG8AcgBnAC8AcwBvAGEAcAAvAGUAbgB2AGUAbABvAHAAZQAvACIAIAB4AG0AbABuAHMAOgB4AHMAaQA9ACIAaAB0AHQAcAA6AC8ALwB3AHcAdwAuAHcAMwAuAG8AcgBnAC8AMgAwADAAMQAvAFgATQBMAFMAYwBoAGUAbQBhAC0AaQBuAHMAdABhAG4AYwBlACIAIAB4AG0AbABuAHMAOgB2ADEAPQAiAGgAdAB0AHAAOgAvAC8AeABtAGwAcwAuAHMAawBhAHQAdABlAHYAZQByAGsAZQB0AC4AcwBlAC8AcwBlAC8AcwBrAGEAdAB0AGUAdgBlAHIAawBlAHQALwBmAG8AbABrAGIAbwBrAGYAbwByAGkAbgBnAC8AbgBhAC8AZQBwAGUAcgBzAG8AbgBkAGEAdABhAC8AVgAxACIAPgANAAoAIAAgADwAcwBvAGEAcABlAG4AdgA6AEgAZQBhAGQAZQByACAALwA+AA0ACgAgACAAPABzAG8AYQBwAGUAbgB2ADoAQgBvAGQAeQA+AA0ACgAgACAAIAAgADwAdgAxADoATgBhAG0AbgBzAG8AawBuAGkAbgBnAFIAZQBxAHUAZQBzAHQAPgANAAoAIAAgACAAIAAgACAAPAB2ADEAOgBCAGUAcwB0AGEAbABsAG4AaQBuAGcAPgANAAoAIAAgACAAIAAgACAAIAAgADwAdgAxADoATwByAGcATgByAD4AMQA2ADIAMAAyADEAMAAwADQANwA0ADgAPAAvAHYAMQA6AE8AcgBnAE4AcgA+AA0ACgAgACAAIAAgACAAIAAgACAAPAB2ADEAOgBCAGUAcwB0AGEAbABsAG4AaQBuAGcAcwBJAGQAPgAwADAAMAAwADAAMAA3ADkALQBGAE8AMAAxAC0AMAAwADAAMQA8AC8AdgAxADoAQgBlAHMAdABhAGwAbABuAGkAbgBnAHMASQBkAD4ADQAKACAAIAAgACAAIAAgADwALwB2ADEAOgBCAGUAcwB0AGEAbABsAG4AaQBuAGcAPgANAAoAIAAgACAAIAAgACAAPAB2ADEAOgBTAG8AawB2AGkAbABsAGsAbwByAE4AYQBtAG4APgANAAoAIAAgACAAIAAgACAAIAAgADwAdgAxADoAQQBkAHIAZQBzAHMAPgBNAEEARwBBAFMASQBOAFMARwBBAFQAQQBOACAANQAgAEEAIABMAEcASAAgADEAMAAwADMAPAAvAHYAMQA6AEEAZAByAGUAcwBzAD4ADQAKACAAIAAgACAAIAAgACAAIAA8AHYAMQA6AEUAZgB0AGUAcgBNAGUAbABsAGEAbgBOAGEAbQBuAD4ATgB1AHQAZQBtAGIAZQBpADwALwB2ADEAOgBFAGYAdABlAHIATQBlAGwAbABhAG4ATgBhAG0AbgA+AA0ACgAgACAAIAAgACAAIAAgACAAPAB2ADEAOgBGAG8AZABlAGwAcwBlAHQAaQBkAEYAcgBvAG0AIAB4AHMAaQA6AG4AaQBsAD0AIgB0AHIAdQBlACIAPgA8AC8AdgAxADoARgBvAGQAZQBsAHMAZQB0AGkAZABGAHIAbwBtAD4ADQAKACAAIAAgACAAIAAgACAAIAA8AHYAMQA6AEYAbwBkAGUAbABzAGUAdABpAGQAVABvAG0AIAB4AHMAaQA6AG4AaQBsAD0AIgB0AHIAdQBlACIAPgA8AC8AdgAxADoARgBvAGQAZQBsAHMAZQB0AGkAZABUAG8AbQA+AA0ACgAgACAAIAAgACAAIAAgACAAPAB2ADEAOgBGAG8AcgBuAGEAbQBuAD4AQQBiAGQAaQBrAGgAYQBkAGUAcgAgAE0AbwBoAGEAbQBlAGQAPAAvAHYAMQA6AEYAbwByAG4AYQBtAG4APgANAAoAIAAgACAAIAAgACAAIAAgADwAdgAxADoASwBvAG4AIAB4AHMAaQA6AG4AaQBsAD0AIgB0AHIAdQBlACIAPgA8AC8AdgAxADoASwBvAG4APgANAAoAIAAgACAAIAAgACAAIAAgADwAdgAxADoAUABvAHMAdABuAHUAbQBtAGUAcgBGAHIAbwBtACAAeABzAGkAOgBuAGkAbAA9ACIAdAByAHUAZQAiAD4APAAvAHYAMQA6AFAAbwBzAHQAbgB1AG0AbQBlAHIARgByAG8AbQA+AA0ACgAgACAAIAAgACAAIAAgACAAPAB2ADEAOgBQAG8AcwB0AG4AdQBtAG0AZQByAFQAbwBtACAAeABzAGkAOgBuAGkAbAA9ACIAdAByAHUAZQAiAD4APAAvAHYAMQA6AFAAbwBzAHQAbgB1AG0AbQBlAHIAVABvAG0APgANAAoAIAAgACAAIAAgACAAIAAgADwAdgAxADoAUABvAHMAdABvAHIAdAA+ADwALwB2ADEAOgBQAG8AcwB0AG8AcgB0AD4ADQAKACAAIAAgACAAIAAgADwALwB2ADEAOgBTAG8AawB2AGkAbABsAGsAbwByAE4AYQBtAG4APgANAAoAIAAgACAAIAA8AC8AdgAxADoATgBhAG0AbgBzAG8AawBuAGkAbgBnAFIAZQBxAHUAZQBzAHQAPgANAAoAIAAgADwALwBzAG8AYQBwAGUAbgB2ADoAQgBvAGQAeQA+AA0ACgA8AC8AcwBvAGEAcABlAG4AdgA6AEUAbgB2AGUAbABvAHAAZQA+AA==</StringHttpBody> | ||
6 | </Request> | ||
7 | </Items> | ||
8 | <WebTestPlugins> | ||
9 | <WebTestPlugin Classname="LIL_VSTT_Plugins.ServiceManagerWebTestPlugin, LIL_VSTT_Plugins, Version=1.3.0.0, Culture=neutral, PublicKeyToken=null" DisplayName="Service Manager Config" Description="(C) Copyright 2015 LIGHTS IN LINE AB
Sätter config värden i Service Manager instansen för hela testet."> | ||
10 | <RuleParameters> | ||
11 | <RuleParameter Name="exp100" Value="True" /> | ||
12 | <RuleParameter Name="maxIdle" Value="100" /> | ||
13 | <RuleParameter Name="keepAlive" Value="False" /> | ||
14 | <RuleParameter Name="timeOut" Value="5000" /> | ||
15 | <RuleParameter Name="interVal" Value="1000" /> | ||
16 | <RuleParameter Name="useNagle" Value="False" /> | ||
17 | <RuleParameter Name="useTls12" Value="True" /> | ||
18 | </RuleParameters> | ||
19 | </WebTestPlugin> | ||
20 | <WebTestPlugin Classname="LIL_VSTT_Plugins.ClientCertificatePlugin, LIL_VSTT_Plugins, Version=1.3.0.0, Culture=neutral, PublicKeyToken=null" DisplayName="Client Certificate" Description="(C) Copyright 2016 LIGHTS IN LINE AB
Sätter webtestet att använda ett specifikt client cert för SSL. Certifikatet behöver inte installeras i certstore först."> | ||
21 | <RuleParameters> | ||
22 | <RuleParameter Name="pCertificatePath" Value="U:\projekt\2015\Folke - flapp\SoapUI\kommunA.p12" /> | ||
23 | <RuleParameter Name="pCertificatePathParameter" Value="" /> | ||
24 | <RuleParameter Name="pCertificatePassword" Value="3129445131123535" /> | ||
25 | <RuleParameter Name="pCertificatePasswordParameter" Value="" /> | ||
26 | <RuleParameter Name="pDebug" Value="False" /> | ||
27 | <RuleParameter Name="pInstallTrusted" Value="True" /> | ||
28 | <RuleParameter Name="pInstallUntrusted" Value="True" /> | ||
29 | </RuleParameters> | ||
30 | </WebTestPlugin> | ||
31 | </WebTestPlugins> | ||
32 | </WebTest> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
-
Please register or sign in to post a comment