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