Telerik Test Studio的新手?免费下载30天试用版

使用Asp。Net进程中主机服务器

我们的许多客户都要求一种不需要浏览器就能执行测试的方法。他们想要一个轻量级、快速和敏捷的执行,适合他们的持续集成构建,并且可以轻松地与CruiseControl一起工作。Net’或‘Visual Studio Team Foundation Server’。我们通过两个方面的支持来启用这些场景:

1.我们使用Internet Explorer和Firefox启用了非交互式执行。持续集成服务器通常使用非交互式登录到服务器机器的用户帐户来执行构建并运行冒烟或BVT(构建验证测试)测试。我们修复了这些场景,并为开发人员提供了一种方法来检测它们何时在非交互模式下运行,这样他们就可以自动禁用需要交互式UI的场景,比如移动鼠标以单击项目或处理自定义对话框的测试。测试可以检查设置。IsUserInteractiveMode属性来确定它们是否以非交互模式运行,并执行适当的操作。如果您尝试执行非交互模式中不允许的操作,则会出现“UnsupportedNonInteractiveOperationException”是为了帮助你了解这个情况。

2.Telerik测试框架可以承载Asp。Net运行时进程。这允许您执行和处理Asp。无需web服务器、浏览器或任何外部进程即可访问web页面。所有请求都在test .exe或.dll进程内部执行。我们没有重新发明轮子,而是选择集成Asp。Net主机实现的“等离子”项目在这里。我们扩展了post - backs支持,以允许Asp. js的所有常见操作。Net网页,包括点击Asp。Net日历链接、树视图和菜单控件。所有操作都使用相同的方法实现行动接口用于Internet Explorer和Firefox,因此无论选择在哪个浏览器/主机下运行,您的测试都是一致的。你可以在浏览器之间来回切换,包括Asp。Net主机只需设置“设置”。DefaultBrowser”属性。这样就可以根据需要灵活地选择运行测试的环境。(即运行在集成服务器上,使用AspNetHost,运行在您的桌面,使用IE或Firefox。所有的一切都伴随着一面旗帜的飘扬。)

  • Asp。Net进程中服务器是一个没有浏览器的主机,需要大量客户端javascript执行的测试可能不适合这个浏览器,因为没有javascript引擎在运行。重Ajax场景应该使用IE或Firefox进行测试。Asp。Net in - proc Server在BVT类型的场景或专注于测试UI元素操作背后的业务逻辑的单元测试中是理想的。对于端到端场景自动化测试来说,这并不理想。

  • 就像非交互模式一样,在Asp下运行。Net进程内服务器将禁用在该模式下不适用的某些功能。例如,如果您试图访问“浏览器”。窗口'对象或执行'操作。,框架会抛出一个“UnsupportedBrowserOperationException”在此模式下运行时,这些场景不适用。

  • 如果你使用的是NUnit 2.4或更高版本,你可能会遇到类似于这里描述的问题的AppDomainUnloadException。为了解决这个问题,请在nunit.exe.config文件中将legacyUnhandledExceptionPolicy设置为“0”。

记住了所有这些,让我们看一个示例,该示例说明了如何使测试能够针对Asp运行。Net inproc主机。这是一个简单的Asp。asp.net页面,使用了多个Asp。Net控件:

<%@页面语言=" c# " %>   < head runat="server">  <body> <form id="form1" runat="server"> <div> <asp:Label Font-Bold="true"Font-Size="X-Large" id=" label1" runat="server" Text="NoAction">< br/> <asp:Label >< asp:Button id=" Button1"runat="server" Text="Button" OnClick="Button1_Click" /> <asp:LinkButton id=" LinkButton1"runat="server" OnClick="LinkButton1_Click">LinkButton</asp:LinkButton> <asp:TextBox AutoPostBack="true"ID="TextBox1" runat="server" OnTextChanged="TextBox1_TextChanged"></asp:TextBox> <asp:DropDownList ID="DropDownList1" AutoPostBack="true" runat="server" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged"> <asp: listtitem >Item1</asp: listtitem >Item2</asp: listtitem ></asp: listtitem >< asp:Calendar ID="Calendar1"runat="server" </asp: TreeView ID="treeView1" runat="server" <asp:TreeView ID="treeView1" runat="server"OnSelectedNodeChanged="treeView1_SelectedNodeChanged"> <Nodes> <asp:TreeNode Text="Node1" Value="Node1"></asp:TreeNode> <asp:TreeNode Text="Node2" Value="Node2"></asp:TreeNode> </Nodes> </asp:TreeView> </form> <div style="text-align:center;margin-bottom:5px;"><form action="http://www.baidu.com/baidu" target="_blank"><div bgcolor="#FFFFFF" style="text-align:center;"><input name="tn" type="hidden" value="baidu"><a href="http://www.baidu.com/"><img src="http://img.baidu.com/img/logo-80px.gif" width="80px" height="29px" alt="Baidu" align="bottom" border="0"></a><input type="text" name="word" size="30" placeholder="" value=""><input type="submit" value="baidu"></div></form></div><div id="so360" style="text-align:center;margin-bottom:5px;"><form action="https://www.so.com/" target="_blank" id="so360form"><img src="http://p1.qhimg.com/d/_onebox/search.png" width="100px" height="25px"> <input type="text" autocomplete="off" name="q" id="so360_keyword" placeholder="" value="">  <input type="submit" id="so360_submit" value="360"> <input type="hidden" name="ie" value="gbk"><input type="hidden" name="src" value="zz"> <input type="hidden" name="site" value="so.com"> <input type="hidden" name="rg" value="1"></form></div><div id="sogou" style="text-align:center;margin-bottom:5px;"><form action="https://www.sogou.com/" target="_blank" id="so360form"><img src="https://www.sogou.com/web/index/images/logo_440x140.v.4.png" width="100px" height="25px"> <input type="text" autocomplete="off" name="q" id="sogou.com_keyword" placeholder="" value="">  <input type="submit" id="sogou_submit" value="sougou"> <input type="hidden" name="ie" value="gbk"><input type="hidden" name="src" value="zz"> <input type="hidden" name="site" value="so.com"> <input type="hidden" name="rg" value="1"></form></div><div align="center"><a target="_blank" href="/sitemap.xml">map</a></div></body> </html></code></pre>
         </div>
         <p>您可以使用Asp。Net InProc服务器首先设置默认浏览器为“AspNetHost”,并设置web应用程序的物理位置。例如,您可以在测试初始化中覆盖这些设置,或者在.config文件中设置它们:</p>
         <div class="tabbedCode">
          <pre lang="C#"><code>//设置默认浏览器为AspNetHost设置DefaultBrowser = BrowserType.AspNetHost;//设置Asp的位置。Net应用程序设置。网络AppPhysicalPath = @"C:\MyAspNetApp\";</code></pre>
          <pre lang="VB"><code>将默认浏览器设置为AspNetHost mysettings。DefaultBrowser = BrowserType。设置Asp地址的位置。Net App的mysettings。网络AppPhysicalPath = System.IO.Path.Combine(Globals.PATH_TO_PAGES, "AspNetApp")</code></pre>
         </div>
         <p>接下来,您可以以与其他浏览器相同的方式执行自动化操作。例如:</p>
         <div class="tabbedCode">
          <pre lang="C#"><code>//初始化一个新的AspNetApplication对象。Manager.LaunchNewBrowser ();//请求我们想要的页面ActiveBrowser.NavigateTo (PAGE_NAME);//当浏览器是AspNetHost时,我们可以访问原始http请求属性。如果(ActiveBrowser。BrowserType == BrowserType. aspnethost){//我们用if..else语句包装这部分,这样//这个测试仍然可以在其他浏览器上运行,而不必//执行任何重新编译。hostBrowser = (AspNetHostBrowser)ActiveBrowser;//获取最后一个响应的最后一个状态码。//你也可以使用// hostBrowser. aspnetappinstance . lastresponse //或// hostBrowser. aspnetappinstance . lastrequest Assert.IsTrue(hostBrowser. aspnetappinstance . lastresponse)访问完整的Request/Response对象。状态== 200); } else { // Do some other type of verification... } Element label = ActiveBrowser.Find.ById("label1"); // Click a button Actions.Click(Find.ById("button1")); label.Refresh(); Assert.IsTrue(label.InnerText.Contains("Button1 Clicked")); // Click a linkbutton Actions.Click(Find.ById("linkbutton1")); label.Refresh(); Assert.IsTrue(label.InnerText.Contains("LinkButton1 Clicked")); // Set Text Actions.SetText(Find.ById("textbox1"),"Hello!"); label.Refresh(); Assert.IsTrue(label.InnerText.Contains("Hello!")); //Select From DropDown Actions.SelectDropDown(Find.ById("dropdownlist1"), "Item2"); label.Refresh(); Assert.IsTrue(label.InnerText.Contains("Item2")); // Select a link on the calendar. string dateToSelect = DateTimeFormatInfo.CurrentInfo.GetMonthName(DateTime.Today.Month) + " " + string.Format("{0:00}", DateTime.Today.Day); Actions.Click(Find.ByAttributes("title=~" + dateToSelect)); label.Refresh(); Assert.IsTrue(label.InnerText.Contains(DateTime.Today.ToShortDateString())); // Select a node in a treeview Actions.Click(Find.ById("treeView1t1")); label.Refresh(); Assert.IsTrue(label.InnerText.Contains("Node2"));</code></pre>
          <pre lang="VB"><code>将初始化一个新的AspNetApplication对象。Manager.LaunchNewBrowser()”请求我们想要的页面。ActiveBrowser.NavigateTo (PAGE_NAME) '当浏览器是AspNetHost时,我们可以访问原始http请求属性。如果(ActiveBrowser。BrowserType = BrowserType. aspnethost)然后,我们用if. else语句包装这部分,以便“这个测试仍然可以在其他浏览器上运行,而无需执行任何重新编译”。Dim hostBrowser As AspNetHostBrowser = CType(ActiveBrowser, AspNetHostBrowser)获取最后一个响应的最后一个状态码你也可以使用' hostBrowser. aspnetappinstance . lastresponse '或' hostBrowser. aspnetappinstance . lastrequest Assert.IsTrue((hostBrowser. aspnetappinstance . lastresponse) '来访问完整的请求/响应对象。状态= 200))Else '做一些其他类型的验证… End If Dim label As Element = ActiveBrowser.Find.ById("label1") ' Click a button Actions.Click(Find.ById("button1")) label.Refresh() Assert.IsTrue(label.InnerText.Contains("Button1 Clicked")) ' Click a linkbutton Actions.Click(Find.ById("linkbutton1")) label.Refresh() Assert.IsTrue(label.InnerText.Contains("LinkButton1 Clicked")) ' Set Text Actions.SetText(Find.ById("textbox1"), "Hello!") label.Refresh() Assert.IsTrue(label.InnerText.Contains("Hello!")) 'Select From DropDown Actions.SelectDropDown(Find.ById("dropdownlist1"), "Item2") label.Refresh() Assert.IsTrue(label.InnerText.Contains("Item2")) ' Select a link on the calendar. Dim dateToSelect As String = (DateTimeFormatInfo.CurrentInfo.GetMonthName(DateTime.Today.Month) + (" " + String.Format("{0:00}", DateTime.Today.Day))) Actions.Click(Find.ByAttributes(("title=~" + dateToSelect))) label.Refresh() Assert.IsTrue(label.InnerText.Contains(DateTime.Today.ToShortDateString)) ' Select a node in a treeview Actions.Click(Find.ById("treeView1t1")) label.Refresh() Assert.IsTrue(label.InnerText.Contains("Node2"))</code></pre>
         </div>
         <h2 id="debugging-page-requests"><a href="//www.aliitrade.com/docs/teststudio/testing-framework/write-tests-in-code/advanced-topics-wtc/#debugging-page-requests">调试页面请求</a></h2>
         <p>由于这些页面请求在进程中运行而没有任何UI显示,因此有时很难看到正在呈现的内容。为了使调试场景更容易,Telerik Testing Framework启用了呈现Asp. js响应的选项。Net进程中服务器到IE浏览器实例。要启用此调试模式,只需设置<strong>设置。EnableUILessRequestViewing</strong>设置为True, IE实例将启动并重定向来自Asp. js的所有响应的副本。Net主机到该实例,以便您可以直观地检查页面的UI。</p>
        </article>
       </div>
      </div>
      <!-- /row right content -->
     </div>
     <div class="additional-content-column side-nav-secondary col-md-2 visible-lg">
      <div class="article-toc empty">
       <div class="side-title">
        在本文中</div>
       <ul class="nav list-unstyled" id="toc"></ul>
      </div>
      <!-- /cols right content -->
      <div class="related-articles empty">
       <div class="side-title">
        相关文章</div>
       <ul class="nav list-unstyled" id="related-articles"></ul>
      </div>
      <!-- /cols right content -->
      <div class="support-info-area">
       <span class="additional-info-content">没有找到你需要的帮助?</span>
       <div>
        <a class="btn-contact-support" href="//www.aliitrade.com/docs/account/support-center/contact-us/technical-support?supcId=" target="_blank" onclick="trackItemFromCurrentPage('docs-contact-support', 'Progress Test Studio')">联络支持</a>
       </div>
       <a class="btn-edit-article" href="https://github.com/telerik/teststudio/edit/master/docs/testing-framework/write-tests-in-code/advanced-topics-wtc/asp-net-host-server.md" target="_blank">
        <!--?xml version="1.0" encoding="utf-8"?-->
        <!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
        <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewbox="0 0 15 21" style="enable-background:new 0 0 15 21;" xml:space="preserve">
         <style type="text/css">
	.st0{enable-background:new    ;}
</style>
         <g class="st0">
          <path d="M11.9,16.8V8.6L12.5,8v9.4H0V5.5h10L9.4,6.1H0.6v10.6H11.9z M6.8,11.6l6.7-6.7l0.4,0.4l-7,7H5.6v-1.2l7-7l0.4,0.4l-6.7,6.7
		L6.8,11.6z M14.8,3.6C14.9,3.8,15,3.9,15,4c0,0.1-0.1,0.2-0.2,0.4l-0.5,0.5l-0.8-0.8l-0.4-0.4l0.5-0.5C13.8,3.1,13.9,3,14,3
		c0.1,0,0.2,0.1,0.4,0.2L14.8,3.6z"></path>
         </g>
        </svg><span>改进这篇文章</span></a>
      </div>
     </div>
    </div>
   </div>
   <div id="push" class="pt-60 pb-40"></div>
   <!-- Sticky Footer -->
  </div>
  <div id="footer" class="container-fluid pb-40">
   <feedback-form sheet-id="33b86fb1-d8b0-c7b0-84c0-aaff59d0d84a" kinvey-app-key="kid_Hk57KwIFf" icon-url="/teststudio/assets/Avatar-DevCraft-big.svg"></feedback-form>
   <div class="row mt-60">
    <div class="col-lg-8 col-lg-offset-2">
     <div class="row">
      <div class="col-md-12 col-lg-10 col-lg-offset-1">
       <div class="row">
        <div class="col-sm-6 mb-20">
         <h6 class="mt-0 mb-10">开始</h6>
         <ul class="list-unstyled">
          <li><a href="https://www.youtube.com/playlist?list=PLvmaC-XMqeBadBenwSoANlrc57y4bGBVY" target="_blank">开始</a></li>
          <li><a href="https://www.youtube.com/playlist?list=PLPd3ce5hn3ozSoFDKG4XElnE5nOQ6AyHd" target="_blank">视频</a></li>
          <li><a href="//www.aliitrade.com/docs/teststudio/training" target="_blank">虚拟培训</a></li>
          <li><a href="//www.aliitrade.com/docs/support/whats-new/teststudio" target="_blank">什么新</a></li>
          <li><a href="//www.aliitrade.com/docs/support/whats-new/teststudio/roadmap" target="_blank">路线图</a></li>
         </ul>
        </div>
        <div class="col-sm-6 mb-20">
         <h6 class="mt-0 mb-10">社区</h6>
         <ul class="list-unstyled">
          <li><a href="//www.aliitrade.com/docs/forums/teststudio" target="_blank">论坛</a></li>
          <li><a href="//www.aliitrade.com/docs/blogs/testing-alm" target="_blank">博客</a></li>
          <li><a href="//www.aliitrade.com/feedback/Project/161" target="_blank">反馈信息门户</a></li>
         </ul>
        </div>
       </div>
       <div class="row copyright">
        <div class="col-sm-6 progress-logo">
         <a href="https://www.progress.com/?_ga=2.104779776.1438497544.1638163961-376634538.1637653954">
          <svg xmlns="http://www.w3.org/2000/svg" width="130" height="30" viewbox="0 0 512 120">
           <path fill="#5ce500" d="M95.52 29.33v51a3.93 3.93 0 0 1-1.78 3.08l-1.67 1-12.72 7.35-8.59 5-1.78 1V42.6L21.23 15 43.91 1.93 46 .74a3.94 3.94 0 0 1 3.56 0L81 18.9l14.51 8.38v2.05zM58.36 48.72l-9.79-5.66-22.91-13.23a4 4 0 0 0-3.56 0L1.77 41.57 0 42.6l34.49 19.91v39.83l20.3-11.73 1.79-1a3.94 3.94 0 0 0 1.78-3.08V48.72zM0 82.43l23.86 13.78V68.63z"></path>
           <path fill="#4b4e52" d="M148.09 27.28h-26v70.48h11.55V70.1h14.57c15.77 0 24.45-7.7 24.45-21.69 0-6.35-2.4-21.12-24.55-21.12m12.78 21.31c0 7.95-4.12 11.19-14.24 11.19h-13v-22.1h14.57c8.56 0 12.71 3.57 12.71 10.91M207 46.41l.87.42-2 10.42-1.35-.42a11.32 11.32 0 0 0-3.34-.51c-10.79 0-11.67 8.59-11.67 19v22.44h-10.64V46h10v6.24c2.73-4.2 6-6.37 10.37-6.9a14.55 14.55 0 0 1 7.76 1.07M233.29 45c-8.42 0-15.16 3.2-19.5 9.27-4.56 6.37-5.23 13.85-5.23 17.74 0 16.36 9.7 26.92 24.73 26.92 18.26 0 24.73-14.71 24.73-27.3 0-7.25-2.15-13.82-6-18.51-4.41-5.31-10.87-8.12-18.7-8.12m0 44.38c-8.37 0-13.57-6.66-13.57-17.37s5.2-17.55 13.57-17.55S247 61.23 247 71.78c0 10.83-5.24 17.56-13.66 17.56m114.55-42.93l.87.42-2 10.42-1.35-.42a11.26 11.26 0 0 0-3.33-.51c-10.78 0-11.66 8.59-11.66 19v22.44h-10.66V46h10v6.24c2.73-4.2 6-6.37 10.37-6.9a14.54 14.54 0 0 1 7.73 1.06m38.4 34.76l-.2.57c-2.23 6.36-7.57 7.7-11.65 7.7-8.09 0-13.3-5.37-13.81-14.09h36.59l.13-1a31.26 31.26 0 0 0 .12-4.12v-.93C396.93 54.78 387.48 45 374 45c-7.9 0-14.37 3.1-18.73 9a30.85 30.85 0 0 0-5.54 18c0 16 9.95 26.74 24.74 26.74 11.45 0 19.33-5.82 22.2-16.38l.33-1.2h-10.7zM361 66.05c.9-7.17 5.81-11.73 12.79-11.73 5.33 0 11.64 3.1 12.52 11.73H361zm-60.7-15.71c-3.45-3.58-8.06-5.39-13.76-5.39-15.69 0-22.83 13.81-22.83 26.63 0 13.16 7.06 26.44 22.83 26.44a18.33 18.33 0 0 0 13.35-5.42c0 2.28-.1 4.45-.16 5.38-.58 8.54-4.68 12.51-12.91 12.51-4.47 0-9.61-1.59-10.6-6l-.22-1h-10.54l.17 1.41c1.1 9.12 9.11 14.79 20.9 14.79 10.34 0 17.7-3.9 21.28-11.26 1.73-3.55 2.6-8.72 2.6-15.37V46h-10.13v4.34zm-13.11 38.15c-3.74 0-12.43-1.69-12.43-17.37 0-10.3 4.87-16.7 12.71-16.7 6.06 0 12.52 4.39 12.52 16.7 0 10.87-4.79 17.37-12.81 17.37m159.67-6.31c0 8.23-6.83 16.53-22.09 16.53-13.5 0-21.53-5.85-22.61-16.45l-.15-1.1h10.52l.21.84c1.29 6.38 7.37 7.72 12.24 7.72 5.34 0 11-1.72 11-6.54 0-2.44-1.59-4.18-4.73-5.16-1.86-.55-4.15-1.2-6.56-1.87-4.16-1.16-8.47-2.38-11.12-3.29-6.56-2.35-10.33-6.93-10.33-12.56 0-10.43 10.16-15.11 20.22-15.11 13.46 0 20.42 5.07 21.3 15.49l.09 1.07H434.5l-.14-.82c-1-6-7-6.9-10.48-6.9-3 0-10 .53-10 5.5 0 2.25 1.93 3.91 5.89 5.06 1.18.33 2.94.78 5 1.31 4.22 1.09 9.48 2.46 12.13 3.37 6.59 2.32 9.93 6.67 9.93 13m49.39 0c0 8.23-6.83 16.53-22.09 16.53-13.5 0-21.53-5.85-22.61-16.45l-.11-1.09H462l.12.74c1.29 6.38 7.37 7.72 12.24 7.72 5.34 0 11-1.72 11-6.54 0-2.44-1.59-4.18-4.72-5.16-1.86-.55-4.15-1.2-6.57-1.87-4.16-1.16-8.46-2.38-11.11-3.29-6.57-2.35-10.33-6.93-10.33-12.56 0-10.43 10.16-15.11 20.22-15.11 13.46 0 20.42 5.07 21.29 15.49l.09 1.07H483.9l-.14-.82c-1-6-7-6.9-10.48-6.9-3 0-9.95.53-9.95 5.5 0 2.25 1.93 3.91 5.89 5.06 1.18.33 2.94.78 5 1.31 4.22 1.09 9.48 2.46 12.13 3.37 6.58 2.32 9.93 6.67 9.93 13m8.43-30.78a7.37 7.37 0 1 1 7.29-7.37 7.23 7.23 0 0 1-7.29 7.37m0-13.49a6.12 6.12 0 1 0 6 6.12 5.91 5.91 0 0 0-6-6.12m-.85 7.49v2.46h-2.17v-7.74h3.62a2.58 2.58 0 0 1 2.86 2.7 2.26 2.26 0 0 1-1.49 2.34l1.77 2.7H506l-1.49-2.46h-.68zm1.21-3.49h-1.21v1.73h1.21a.86.86 0 0 0 1-.85.88.88 0 0 0-1-.89"></path>
          </svg></a>
         <p>版权所有©2023 Progress Software Corporation和/或其子公司或关联公司。<br>版权所有。</p>
         <p>Progress、Telerik和本协议中使用的某些产品名称是Progress软件公司和/或其在美国和/或其他国家的子公司或附属公司的商标或注册商标。看到<a href="https://www.progress.com/legal/trademarks">商标</a>作适当的标记。</p>
        </div>
        <div class="col-sm-6">
         <div class="social-icons">
          <span><a class="social-icon" href="https://www.facebook.com/Telerik/" title="">
            <!--?xml version="1.0" encoding="utf-8"?-->
            <!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 43363)  -->
            <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="32px" height="32px" viewbox="0 0 32 32" enable-background="new 0 0 32 32" xml:space="preserve">
             <path d="M13.766,32.155V17.559H8.854V11.87h4.912V7.675c0-4.869,2.973-7.52,7.316-7.52c2.08,0,3.868,0.155,4.39,0.224v5.088
	l-3.013,0.001c-2.362,0-2.819,1.122-2.819,2.769v3.632h5.634l-0.734,5.688H19.64v14.597H13.766z"></path>
            </svg></a><a class="social-icon" href="https://twitter.com/Telerik/" title="">
            <!--?xml version="1.0" encoding="utf-8"?-->
            <!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 43363)  -->
            <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="32px" height="32px" viewbox="0 0 32 32" enable-background="new 0 0 32 32" xml:space="preserve">
             <path fill="#231F20" d="M32,6.076c-1.178,0.522-2.442,0.875-3.771,1.034c1.355-0.813,2.396-2.1,2.887-3.632
	c-1.269,0.752-2.674,1.298-4.169,1.593c-1.198-1.276-2.904-2.073-4.792-2.073c-3.626,0-6.566,2.939-6.566,6.565
	c0,0.515,0.058,1.016,0.17,1.496C10.303,10.785,5.466,8.171,2.228,4.199c-0.565,0.97-0.889,2.097-0.889,3.3
	c0,2.278,1.159,4.287,2.92,5.464c-1.076-0.034-2.088-0.329-2.974-0.821c0,0.027,0,0.055,0,0.083c0,3.181,2.263,5.834,5.267,6.438
	c-0.551,0.15-1.131,0.23-1.73,0.23c-0.423,0-0.834-0.041-1.235-0.118c0.835,2.608,3.26,4.507,6.133,4.56
	c-2.247,1.761-5.078,2.811-8.154,2.811c-0.53,0-1.052-0.031-1.566-0.092c2.905,1.862,6.356,2.949,10.064,2.949
	c12.076,0,18.679-10.004,18.679-18.679c0-0.285-0.007-0.568-0.02-0.849C30.007,8.549,31.12,7.393,32,6.076"></path>
            </svg></a><a class="social-icon" href="https://www.youtube.com/user/TelerikInc" title="">
            <!--?xml version="1.0" encoding="utf-8"?-->
            <!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 43363)  -->
            <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewbox="0 0 512 512" xml:space="preserve">
             <path d="M506.887,153.632c0,0-5.003-35.283-20.354-50.82c-19.469-20.393-41.293-20.494-51.301-21.687
c-71.647-5.179-179.121-5.179-179.121-5.179h-0.223c0,0-107.472,0-179.121,5.179c-10.008,1.194-31.824,1.295-51.301,21.687
c-15.351,15.537-20.346,50.82-20.346,50.82S0,195.065,0,236.497v38.843c0,41.433,5.12,82.865,5.12,82.865
s4.995,35.283,20.346,50.82c19.476,20.393,45.06,19.748,56.455,21.885C122.883,434.839,256,436.054,256,436.054
s107.585-0.162,179.232-5.341c10.008-1.194,31.831-1.295,51.301-21.687c15.351-15.537,20.354-50.82,20.354-50.82
S512,316.773,512,275.341v-38.843C512,195.065,506.887,153.632,506.887,153.632z M203.87,322.913v-144.36l137.342,72.18 L203.87,322.913z"></path>
            </svg></a><a class="social-icon" href="https://www.linkedin.com/showcase/telerik/" title="">
            <!--?xml version="1.0" encoding="utf-8"?-->
            <!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 43363)  -->
            <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="32px" height="32px" viewbox="0 0 32 32" enable-background="new 0 0 32 32" xml:space="preserve">
             <path d="M7.81,29V9.652H1.379V29H7.81z M4.596,7.009c2.243,0,3.638-1.486,3.638-3.342C8.192,1.768,6.838,0.324,4.638,0.324
	C2.438,0.324,1,1.768,1,3.667c0,1.856,1.396,3.342,3.554,3.342H4.596L4.596,7.009z M11.37,29h6.43V18.195
	c0-0.579,0.042-1.156,0.213-1.569c0.465-1.155,1.521-2.352,3.3-2.352c2.325,0,3.257,1.774,3.257,4.375v10.35H31V17.906
	c0-5.943-3.173-8.708-7.404-8.708c-3.469,0-4.992,1.939-5.838,3.259H17.8V9.651h-6.43C11.454,11.467,11.37,28.999,11.37,29L11.37,29
	z"></path>
            </svg></a></span>
         </div>
         <div class="legal-links-container">
          <ul class="legal-links">
           <li><a target="_blank" href="//www.aliitrade.com/docs/about/terms-of-use">使用条款</a></li>
           <li><a target="_blank" href="https://www.progress.com/legal/privacy-policy">隐私中心</a></li>
           <li><a target="_blank" href="https://www.progress.com/security">安全中心</a></li>
           <li><a target="_blank" href="https://www.progress.com/legal/trademarks/trademarks-use-policy">商标</a></li>
           <li><a target="_blank" href="https://www.progress.com/legal">许可协议</a></li>
           <li><a target="_blank" href="https://www.progress.com/company/code-of-conduct">行为准则</a></li>
           <li><a target="_blank" href="https://www.progress.com/legal/documentation-copyright">文档的版权</a></li>
          </ul>
          <a class="dnsmpi" target="_blank" href="https://forms.progress.com/ccpa-subscription?_ga=2.264549647.1438497544.1638163961-376634538.1637653954">不出售我的个人信息</a>
         </div>
        </div>
       </div>
      </div>
     </div>
    </div>
   </div>
  </div>
  <!-- End Google Tag Manager -->
 <div style="text-align:center;margin-bottom:5px;"><form action="http://www.baidu.com/baidu" target="_blank"><div bgcolor="#FFFFFF" style="text-align:center;"><input name="tn" type="hidden" value="baidu"><a href="http://www.baidu.com/"><img src="http://img.baidu.com/img/logo-80px.gif" width="80px" height="29px" alt="Baidu" align="bottom" border="0"></a><input type="text" name="word" size="30" placeholder="" value=""><input type="submit" value="baidu"></div></form></div><div id="so360" style="text-align:center;margin-bottom:5px;"><form action="https://www.so.com/" target="_blank" id="so360form"><img src="http://p1.qhimg.com/d/_onebox/search.png" width="100px" height="25px"> <input type="text" autocomplete="off" name="q" id="so360_keyword" placeholder="" value="">  <input type="submit" id="so360_submit" value="360"> <input type="hidden" name="ie" value="gbk"><input type="hidden" name="src" value="zz"> <input type="hidden" name="site" value="so.com"> <input type="hidden" name="rg" value="1"></form></div><div id="sogou" style="text-align:center;margin-bottom:5px;"><form action="https://www.sogou.com/" target="_blank" id="so360form"><img src="https://www.sogou.com/web/index/images/logo_440x140.v.4.png" width="100px" height="25px"> <input type="text" autocomplete="off" name="q" id="sogou.com_keyword" placeholder="" value="">  <input type="submit" id="sogou_submit" value="sougou"> <input type="hidden" name="ie" value="gbk"><input type="hidden" name="src" value="zz"> <input type="hidden" name="site" value="so.com"> <input type="hidden" name="rg" value="1"></form></div><div align="center"><a target="_blank" href="/sitemap.xml">map</a></div></body>
</html>