成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

cypress進行e2e測試之理論

chnmagnus / 1173人閱讀

摘要:進行測試之理論是目前很火的一個測試組件,內(nèi)部綁定了之類的斷言為了讓代碼代碼更有說服力,減少提交測試錯誤,進行測試顯然是非常有必要的。

cypress 進行 e2e 測試之理論

cypress 是目前 e2e 很火的一個測試組件,內(nèi)部綁定了 macha、chai、chai-jquery 之類的斷言,為了讓代碼代碼
更有說服力,減少提交測試錯誤,進行 e2e 測試顯然是非常有必要的。

官網(wǎng) 
GitHub

借鑒官網(wǎng)一句話來說:

Cypress is a next generation front end testing tool built for the modern web. We address the key
pain points developers and QA engineers face when testing modern applications.

本文環(huán)境
node v9.5
npm v5.5
e2e 簡介

e2e 測試端對端測試的簡稱, e2e 即為end to end,
指任意一個人的社交、交易、休閑都可以直接與另外任意一個人產(chǎn)生關(guān)系,去中心化、渠道化.

cypress cypress 環(huán)境搭建

做前端怎么少的多的了 npm 呢

$ npm i -D cypress

然后為了方便起見,咱們在package.json中寫入下面腳本:

{
  "scripts": {
    "e2e:open": "cypress open",
    "e2e:run": "cypress run"
  }
}

運行npm run e2e:open,啟動一個 cypress 的服務器,如下:

如下圖這就完成了一個啟動一個 cypress。第一次點開時候,cypress 會幫你創(chuàng)建一個初始化配置目錄,這是
cypress 推薦的目錄的結(jié)構(gòu),當然也可以自己創(chuàng)建。

點擊 example_spec.js 文件,然后可以看到如下界面,cypress 開始測試:

上面就看到 cypress 的運行過程了。下面看看 example_spec.js(文件的位置
:projectName/cypress/integration)文件中寫了啥:

describe("Kitchen Sink", function() {
  it(".should() - assert that  is correct", function() {
    // ...
  }
})</pre>
<p>這是主要結(jié)構(gòu)的,下面大部分都是在一個<b>it</b>函數(shù)內(nèi)部,是測試里面的回調(diào)函數(shù)。詳細可以查看 TDD 和 BDD 測試<br>框架,cypress 綁定了這些測試框架。</p>
<b>cy.visit</b>
<p>這是 cypress 里面一個很重要的方法,可以訪問一個鏈接,列入 example.js 文件如下:</p>
<pre>beforeEach(function() {
  // Visiting our app before each test removes any state build up from
  // previous tests. Visiting acts as if we closed a tab and opened a fresh one
  cy.visit("https://example.cypress.io/commands/querying")
})</pre>
<p>這里就是在前置鉤子函數(shù)里面訪問了<b>https://...../querying</b>這個鏈接。如果代碼需要瀏覽器調(diào)試,比如用戶交<br>互點擊,用戶輸入之類的。第一步就是訪問:cy.visit</p>
<b>cy.get</b>
<p>還是從 example_spec.js 問中說起:</p>
<pre>it("cy.get() - query DOM elements", function() {
  // https://on.cypress.io/get

  // Get DOM elements by id
  cy.get("#query-btn").should("contain", "Button")

  // Get DOM elements by class
  cy.get(".query-btn").should("contain", "Button")

  cy.get("#querying .well>button:first").should("contain", "Button")
  //              ?
  // Use CSS selectors just like jQuery
})</pre>
<p>這里定義了一個測試單元,在這個里面做了啥呢?第一步獲取 id 為 query-btn 這個按鈕。接下來 should 操作<br>,奉上一張表自行查看: <script type="text/javascript">showImg("https://segmentfault.com/img/remote/1460000014630106?w=743&h=810");</script></p>
<p>cy.get 還有一個玩法就是 cy.get("@app")這種,意思說之前你已經(jīng)<b>cy.get(".app").as("app")</b>,不需要再次獲<br>取了,直接使用別名就好了</p>
<p>從官網(wǎng)截圖的表格,詳<br>細jquery-chai 文檔表格</p>
<p>這里看到<b>cy.get()</b>和<b>jquery.$</b>是不是很像,在官網(wǎng)這里說了這樣一句話:</p>
<pre>The querying behavior of this command matches exactly how $(…) works in jQuery.</pre>
<p>所以可以將 cy.get()當$一樣來用即可,不過這里返回的不過 jquery 對象罷了,這里返回的事通過 cypress 包<br>裝過的對象可以在控制臺看到這樣的東西,見下圖:<br><script type="text/javascript">showImg("https://segmentfault.com/img/remote/1460000014630107?w=718&h=1192");</script></p>
<p>是一個用于 cypress 所有方法的對象。然后可以操作他的 api 了。</p>
<p>第一部分,主要是查詢,查詢頁面元素是否按照我們開發(fā)想要的存在,下面看第二部分:</p>
<pre>context("Actions", function() {
  beforeEach(function() {
    cy.visit("https://example.cypress.io/commands/actions")
  })

  // Let"s perform some actions on DOM elements
  // https://on.cypress.io/interacting-with-elements

  it(".type() - type into a DOM element", function() {
    // https://on.cypress.io/type
    cy
      .get(".action-email")
      .type("fake@email.com")
      .should("have.value", "fake@email.com")

      // .type() with special character sequences
      .type("{leftarrow}{rightarrow}{uparrow}{downarrow}")
      .type("{del}{selectall}{backspace}")

      // .type() with key modifiers
      .type("{alt}{option}") //these are equivalent
      .type("{ctrl}{control}") //these are equivalent
      .type("{meta}{command}{cmd}") //these are equivalent
      .type("{shift}")

      // Delay each keypress by 0.1 sec
      .type("slow.typing@email.com", { delay: 100 })
      .should("have.value", "slow.typing@email.com")

    cy
      .get(".action-disabled")
      // Ignore error checking prior to type
      // like whether the input is visible or disabled
      .type("disabled error checking", { force: true })
      .should("have.value", "disabled error checking")
  })
})</pre>
<p>這一部分主要是進行獲取元素交互, 下面來說交互是如何搞得。 與 cy.get 相似還有:</p>

<p>cy.contains 通過文本獲取元素</p>
<p>cy.closet 見 jqery</p>
<p>cy.next/cy.nextAll 可以和 cy.contains 聯(lián)合使用獲取該節(jié)點的下一個節(jié)點</p>
<p>cy.prev/cy.prevAll 同上</p>
<p>cy.children/cy.parents/cy.parent 獲取子節(jié)點/ 所有的父節(jié)點 / 父節(jié)點</p>
<p>cy.first/cy.last</p>
<p>cy.url 獲取當前頁面 url</p>
<p>cy.title 獲取當前頁面標題</p>
<p>... API 挺多的,同樣奉<br>上api 文檔
</p>

<b>cypress 交互邏輯</b>
<p>既然要交互肯定需要點擊輸入滾動,可以還存在拖拽等等。咱們就暫時從輸入開始說起啦</p>
<b>cy.type</b>
<p>這不是一個可以直接使用的方法,要配合<b>cy.get</b>使用的,作用是給空間進行輸入。例如:</p>
<b>測試輸入例如 text, textarea</b>
<pre>cy.get("input").type("hello world")</pre>
<b>測試 tabIndex</b>
<pre>  <div   id="qoyqs8suu2u"   class="el" tabIndex="1">
    This is TabIndex div.
  </div></pre>
<pre>cy.get(".el").type("laldkadaljdkljasf") // 這個里面是隨機字符串</pre>
<b>測試 input 為日期的</b>
<pre>cy.get("input[type=date]").type("2008-8-9")</pre>
<b>鍵盤綁定</b>
<p>下面直接是對 input 進行組合鍵盤操作</p>
<pre>cy.get("input").type("{shift}{alt}Q")</pre>
<p>按住鍵盤操作</p>
<pre>cy.get("input").type("{alt}這里是按了一下alt后輸入的內(nèi)容")</pre>
<p>還有長按鍵盤之類的操作,詳細就看官網(wǎng)了這里之類奉上鏈<br>接https://docs.cypress.io/api/commands/type.html#Key-Combinations</p>
<p>這里就是關(guān)于鍵盤的組合操作。</p>
<b>對于選擇例如 radio, checkbox</b>
<p>這些就只需要利用點擊事件即可,如下:</p>
<pre>cy
  .get("input[type=radio]")
  .as("radio")
  .click()
cy.get("@radio").should("be.checked")</pre>
<b>定時</b>
<b>cy.wait</b>
<p>下面是等待 1s</p>
<pre>cy.wait(1000)</pre>
<b>cy.clock 和 cy.tick</b>
<p>自己的代碼:</p>
<pre>var seconds = 0
setInterval(() => {
  $("#seconds-elapsed").text(++seconds + " seconds")
}, 1000)</pre>
<p>測試代碼</p>
<pre>cy.clock()
cy.visit("/index.html")
cy.tick(1000)
cy.get("#seconds-elapsed").should("have.text", "1 seconds")
cy.tick(1000)
cy.get("#seconds-elapsed").should("have.text", "2 seconds")</pre>
<p><script type="text/javascript">showImg("https://segmentfault.com/img/remote/1460000014630108");</script> 這里就會出現(xiàn)關(guān)于 clock 和 tick<br>的用法,更多用法看文檔,我也有部分迷惑的。待后來再解決。老規(guī)矩文檔地址:<br>地址</p>
<b>關(guān)于 cypress 的配置</b>
<p>先復制一段出來:</p>
<pre>{
  "baseUrl": "http://localhost:8080",
  "pageLoadTimeout": 3000,
  "viewportHeight": 667,
  "viewportWidth": 375
}</pre>
<p>這是一個非常精簡的配置了:</p>

<p>baseUrl 基礎(chǔ)鏈接,之后在是使用 cy.visit 的時候,只需要訪問具體路由例如: cy.visit("/Hello")</p>
<p>
<p>viewport 兩個屬性</p>

<p>viewportHeight 測試窗口的高度</p>
<p>viewportWidth 測試窗口的寬度</p>

</p>
<p>pageLoadTimeout 頁面家安在超過 3000ms 即為超時。</p>

<b>總結(jié)</b>
<p>上面是 cypress 的基本用法,cypress 是基于 electron 的一個測試框架,提供 web 環(huán)境進行點對點的測試,在<br>programer 思維下,進行自動化的交互操作,必要點檢測說明,這是一個非常棒的用處。例如之后擁有數(shù)據(jù)埋點,<br>可以在固定的位置檢測是否有埋點。測試想要的地方是否匹配的數(shù)據(jù)。模擬用戶的點擊操作,這都是非常棒的。在<br>jquery 操作年代,各種 id 和 class 奇怪命名下,這些都可以容易找到,在 vue 和 react 大行其道的年代,但<br>是卻可以通過文本尋找節(jié)點。這也是非常棒的體驗,更多秘密需要去體驗,奉上官方地址<br>:官網(wǎng) cypress</p>           
               
                                           
                       
                 </div>
            
                     <div   id="qoyqs8suu2u"   class="mt-64 tags-seach" >
                 <div   id="qoyqs8suu2u"   class="tags-info">
                                                                                                                    
                         <a style="width:120px;" title="云服務器" href="http://systransis.cn/site/active/kuaijiesale.html?ytag=seo">云服務器</a>
                                             
                         <a style="width:120px;" title="GPU云服務器" href="http://systransis.cn/site/product/gpu.html">GPU云服務器</a>
                                                                                                                                                 
                                      
                     
                    
                                                                                               <a style="width:120px;" title="進行測試" href="http://systransis.cn/yun/tag/jinxingceshi/">進行測試</a>
                                                                                                           <a style="width:120px;" title="java進行接口測試" href="http://systransis.cn/yun/tag/javajinxingjiekouceshi/">java進行接口測試</a>
                                                                                                           <a style="width:120px;" title="cypress" href="http://systransis.cn/yun/tag/cypress/">cypress</a>
                                                                                                           <a style="width:120px;" title="云主機上可以進行壓力測試嗎" href="http://systransis.cn/yun/tag/yunzhujishangkeyijinxingyaliceshima/">云主機上可以進行壓力測試嗎</a>
                                                         
                 </div>
               
              </div>
             
               <div   id="qoyqs8suu2u"   class="entry-copyright mb-30">
                   <p class="mb-15"> 文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。</p>
                 
                   <p>轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/94633.html</p>
               </div>
                      
               <ul class="pre-next-page">
                 
                                  <li id="qoyqs8suu2u"    class="ellipsis"><a class="hpf" href="http://systransis.cn/yun/94632.html">上一篇:如何把滑動條變好看一點</a></li>  
                                                
                                       <li id="qoyqs8suu2u"    class="ellipsis"><a class="hpf" href="http://systransis.cn/yun/94634.html">下一篇:關(guān)于js節(jié)流函數(shù)throttle和防抖動debounce</a></li>
                                  </ul>
              </div>
              <div   id="qoyqs8suu2u"   class="about_topicone-mid">
                <h3 class="top-com-title mb-0"><span data-id="0">相關(guān)文章</span></h3>
                <ul class="com_white-left-mid atricle-list-box">
                             
                                                                                                    <li>
                                                <div   id="qoyqs8suu2u"   class="atricle-list-right">
                          <h2 class="ellipsis2"><a class="hpf" href="http://systransis.cn/yun/107684.html"><b>前端<em>E2E</em><em>測試</em>框架 <em>cypress</em>了解一下</b></a></h2>
                                                     <p class="ellipsis2 good">摘要:是一款開箱即用可以跑在瀏覽器上的測試工具。同樣,測試了也可以直接調(diào)試。這個時候我們的測試文件就可以訪問了,點擊之后發(fā)現(xiàn)他需要我們編寫測試用例,那么接下來就手把手教你編寫基本的測試用例。

What is E2E?
所謂的E2E就是end-to-end。  假設(shè)我們編寫的每個功能程序都是一個黑匣子,最終用戶也只會看到這個黑匣子,那么站在用戶的角度來看并不需要知道這個黑匣子內(nèi)部是什么東西也不...</p>
                                                   
                          <div   id="qoyqs8suu2u"   class="com_white-left-info">
                                <div   id="qoyqs8suu2u"   class="com_white-left-infol">
                                    <a href="http://systransis.cn/yun/u-172.html"><img src="http://systransis.cn/yun/data/avatar/000/00/01/small_000000172.jpg" alt=""><span id="qoyqs8suu2u"    class="layui-hide64">mushang</span></a>
                                    <time datetime="">2019-08-26 11:51</time>
                                    <span><i class="fa fa-commenting"></i>評論0</span> 
                                    <span><i class="fa fa-star"></i>收藏0</span> 
                                </div>
                          </div>
                      </div>
                    </li> 
                                                                                       <li>
                                                <div   id="qoyqs8suu2u"   class="atricle-list-right">
                          <h2 class="ellipsis2"><a class="hpf" href="http://systransis.cn/yun/94439.html"><b>撩<em>測試</em>MM神器<em>cypress</em>使用入門</b></a></h2>
                                                     <p class="ellipsis2 good">摘要:上也有幾個臨時方案,目前我傾向使用自帶的來查看。在打開的測試的瀏覽器中打開切到按下用戶按,輸入,選擇重新刷新并統(tǒng)計代碼執(zhí)行覆蓋率。那么,起來為了高撩質(zhì)測量試代碼,起來。

不很久不很久以前
據(jù)說某家公司有兩位前端,天天擼bug,為啥嘞?只怪測試MM傾人國,輕語哥哥有bug。?(??????)?? 可是最近兩位有點犯愁 Σ(っ °Д °;)っ。測試MM有幾次提了緊急bug,都在旁邊鼓勵他們...</p>
                                                   
                          <div   id="qoyqs8suu2u"   class="com_white-left-info">
                                <div   id="qoyqs8suu2u"   class="com_white-left-infol">
                                    <a href="http://systransis.cn/yun/u-837.html"><img src="http://systransis.cn/yun/data/avatar/000/00/08/small_000000837.jpg" alt=""><span id="qoyqs8suu2u"    class="layui-hide64">MAX_zuo</span></a>
                                    <time datetime="">2019-08-22 16:32</time>
                                    <span><i class="fa fa-commenting"></i>評論0</span> 
                                    <span><i class="fa fa-star"></i>收藏0</span> 
                                </div>
                          </div>
                      </div>
                    </li> 
                                                                                       <li>
                                                <div   id="qoyqs8suu2u"   class="atricle-list-right">
                          <h2 class="ellipsis2"><a class="hpf" href="http://systransis.cn/yun/95054.html"><b>端到端<em>測試</em>哪家強?不容錯過的<em>Cypress</em></b></a></h2>
                                                     <p class="ellipsis2 good">摘要:閱讀原文目前測試工具有哪些項目不需要不需要端到端測試一般都需要一個容器,來運行前端應用。向快速,一致和可靠的無剝落測試問好。

閱讀原文
1. 目前E2E測試工具有哪些?


項目
Web
Star



puppeteer
Chromium (~170Mb Mac, ~282Mb Linux, ~280Mb Win)
31906


nightmare
Electron
15502

...</p>
                                                   
                          <div   id="qoyqs8suu2u"   class="com_white-left-info">
                                <div   id="qoyqs8suu2u"   class="com_white-left-infol">
                                    <a href="http://systransis.cn/yun/u-573.html"><img src="http://systransis.cn/yun/data/avatar/000/00/05/small_000000573.jpg" alt=""><span id="qoyqs8suu2u"    class="layui-hide64">LancerComet</span></a>
                                    <time datetime="">2019-08-22 17:19</time>
                                    <span><i class="fa fa-commenting"></i>評論0</span> 
                                    <span><i class="fa fa-star"></i>收藏0</span> 
                                </div>
                          </div>
                      </div>
                    </li> 
                                                                                       <li>
                                                <div   id="qoyqs8suu2u"   class="atricle-list-right">
                          <h2 class="ellipsis2"><a class="hpf" href="http://systransis.cn/yun/99095.html"><b>FE.TEST-前端<em>測試</em>初探</b></a></h2>
                                                     <p class="ellipsis2 good">摘要:使用可以快速生成一個項目,其中包含了和以及覆蓋率統(tǒng)計的配置參考一個創(chuàng)建測試腳本的快速方法其他參考資料前端自動化測試概覽測試之使用對項目進行單元測試

showImg(https://segmentfault.com/img/bVbjfXr?w=600&h=317);
前言
測試可以提供快速反饋,根據(jù)測試用例覆蓋代碼,從而提升代碼開發(fā)效率和質(zhì)量。根據(jù)投入產(chǎn)出價值,通常迭代較快的業(yè)務邏輯不做...</p>
                                                   
                          <div   id="qoyqs8suu2u"   class="com_white-left-info">
                                <div   id="qoyqs8suu2u"   class="com_white-left-infol">
                                    <a href="http://systransis.cn/yun/u-1120.html"><img src="http://systransis.cn/yun/data/avatar/000/00/11/small_000001120.jpg" alt=""><span id="qoyqs8suu2u"    class="layui-hide64">Travis</span></a>
                                    <time datetime="">2019-08-23 12:55</time>
                                    <span><i class="fa fa-commenting"></i>評論0</span> 
                                    <span><i class="fa fa-star"></i>收藏0</span> 
                                </div>
                          </div>
                      </div>
                    </li> 
                                                                           
                </ul>
              </div>
              
               <div   id="qoyqs8suu2u"   class="topicone-box-wangeditor">
                  
                  <h3 class="top-com-title mb-64"><span>發(fā)表評論</span></h3>
                   <div   id="qoyqs8suu2u"   class="xcp-publish-main flex_box_zd">
                                      
                      <div   id="qoyqs8suu2u"   class="unlogin-pinglun-box">
                        <a href="javascript:login()" class="grad">登陸后可評論</a>
                      </div>                   </div>
               </div>
              <div   id="qoyqs8suu2u"   class="site-box-content">
                <div   id="qoyqs8suu2u"   class="site-content-title">
                  <h3 class="top-com-title mb-64"><span>0條評論</span></h3>   
                </div> 
                      <div   id="qoyqs8suu2u"   class="pages"></ul></div>
              </div>
           </div>
           <div   id="qoyqs8suu2u"   class="layui-col-md4 layui-col-lg3 com_white-right site-wrap-right">
              <div   id="qoyqs8suu2u"   class=""> 
                <div   id="qoyqs8suu2u"   class="com_layuiright-box user-msgbox">
                    <a href="http://systransis.cn/yun/u-768.html"><img src="http://systransis.cn/yun/data/avatar/000/00/07/small_000000768.jpg" alt=""></a>
                    <h3><a href="http://systransis.cn/yun/u-768.html" rel="nofollow">chnmagnus</a></h3>
                    <h6>男<span>|</span>高級講師</h6>
                    <div   id="qoyqs8suu2u"   class="flex_box_zd user-msgbox-atten">
                     
                                                                      <a href="javascript:attentto_user(768)" id="attenttouser_768" class="grad follow-btn notfollow attention">我要關(guān)注</a>
      
                                                                                        <a href="javascript:login()" title="發(fā)私信" >我要私信</a>
                     
                                            
                    </div>
                    <div   id="qoyqs8suu2u"   class="user-msgbox-list flex_box_zd">
                          <h3 class="hpf">TA的文章</h3>
                          <a href="http://systransis.cn/yun/ut-768.html" class="box_hxjz">閱讀更多</a>
                    </div>
                      <ul class="user-msgbox-ul">
                                                  <li><h3 class="ellipsis"><a href="http://systransis.cn/yun/119914.html">把 RNN 循環(huán)神經(jīng)網(wǎng)絡植入體內(nèi),僅憑一張“薄片”,就能直接檢測你有無心律異常</a></h3>
                            <p>閱讀 3599<span>·</span>2021-09-13 10:28</p></li>
                                                       <li><h3 class="ellipsis"><a href="http://systransis.cn/yun/118068.html">SecureIDC:$19/月/1GB內(nèi)存/100GB SSD空間/500GB流量/1Gbps端口/</a></h3>
                            <p>閱讀 1948<span>·</span>2021-08-10 09:43</p></li>
                                                       <li><h3 class="ellipsis"><a href="http://systransis.cn/yun/116086.html">第三集: 從零開始實現(xiàn)一套pc端vue的ui組件庫(button組件其一)</a></h3>
                            <p>閱讀 1022<span>·</span>2019-08-30 15:44</p></li>
                                                       <li><h3 class="ellipsis"><a href="http://systransis.cn/yun/115408.html">Bootstrap 柵格布局</a></h3>
                            <p>閱讀 3193<span>·</span>2019-08-30 13:14</p></li>
                                                       <li><h3 class="ellipsis"><a href="http://systransis.cn/yun/113990.html">解決input 中placeholder的那些神坑</a></h3>
                            <p>閱讀 1850<span>·</span>2019-08-29 16:56</p></li>
                                                       <li><h3 class="ellipsis"><a href="http://systransis.cn/yun/113841.html">一個常年更新的CSS采坑合集</a></h3>
                            <p>閱讀 2947<span>·</span>2019-08-29 16:35</p></li>
                                                       <li><h3 class="ellipsis"><a href="http://systransis.cn/yun/112270.html">HTML CSS 實現(xiàn)鼠標懸停時圖片拉近效果</a></h3>
                            <p>閱讀 2854<span>·</span>2019-08-29 12:58</p></li>
                                                       <li><h3 class="ellipsis"><a href="http://systransis.cn/yun/109497.html">canvas-塔防游戲</a></h3>
                            <p>閱讀 872<span>·</span>2019-08-26 13:46</p></li>
                                                
                      </ul>
                </div>

                   <!-- 文章詳情右側(cè)廣告-->
              
  <div   id="qoyqs8suu2u"   class="com_layuiright-box">
                  <h6 class="top-com-title"><span>最新活動</span></h6> 
           
         <div   id="qoyqs8suu2u"   class="com_adbox">
                    <div   id="qoyqs8suu2u"   class="layui-carousel" id="right-item">
                      <div carousel-item>
                                                                                                                       <div>
                          <a href="http://systransis.cn/site/active/kuaijiesale.html?ytag=seo"  rel="nofollow">
                            <img src="http://systransis.cn/yun/data/attach/240625/2rTjEHmi.png" alt="云服務器">                                 
                          </a>
                        </div>
                                                <div>
                          <a href="http://systransis.cn/site/product/gpu.html"  rel="nofollow">
                            <img src="http://systransis.cn/yun/data/attach/240807/7NjZjdrd.png" alt="GPU云服務器">                                 
                          </a>
                        </div>
                                                                   
                    
                        
                      </div>
                    </div>
                      
                    </div>                    <!-- banner結(jié)束 -->
              
<div   id="qoyqs8suu2u"   class="adhtml">

</div>
                <script>
                $(function(){
                    $.ajax({
                        type: "GET",
                                url:"http://systransis.cn/yun/ad/getad/1.html",
                                cache: false,
                                success: function(text){
                                  $(".adhtml").html(text);
                                }
                        });
                    })
                </script>                </div>              </div>
           </div>
        </div>
      </div> 
    </section>
    <!-- wap拉出按鈕 -->
     <div   id="qoyqs8suu2u"   class="site-tree-mobile layui-hide">
      <i class="layui-icon layui-icon-spread-left"></i>
    </div>
    <!-- wap遮罩層 -->
    <div   id="qoyqs8suu2u"   class="site-mobile-shade"></div>
    
       <!--付費閱讀 -->
       <div   class="qoyqs8suu2u"   id="payread">
         <div   id="qoyqs8suu2u"   class="layui-form-item">閱讀需要支付1元查看</div>  
         <div   id="qoyqs8suu2u"   class="layui-form-item"><button class="btn-right">支付并查看</button></div>     
       </div>
      <script>
      var prei=0;

       
       $(".site-seo-depict pre").each(function(){
          var html=$(this).html().replace("<code>","").replace("</code>","").replace('<code class="javascript hljs" codemark="1">','');
          $(this).attr('data-clipboard-text',html).attr("id","pre"+prei);
          $(this).html("").append("<code>"+html+"</code>");
         prei++;
       })
           $(".site-seo-depict img").each(function(){
             
            if($(this).attr("src").indexOf('data:image/svg+xml')!= -1){
                $(this).remove();
            }
       })
     $("LINK[href*='style-49037e4d27.css']").remove();
       $("LINK[href*='markdown_views-d7a94ec6ab.css']").remove();
layui.use(['jquery', 'layer','code'], function(){
  $("pre").attr("class","layui-code");
      $("pre").attr("lay-title","");
       $("pre").attr("lay-skin","");
  layui.code(); 
       $(".layui-code-h3 a").attr("class","copycode").html("復制代碼 ").attr("onclick","copycode(this)");
      
});
function copycode(target){
    var id=$(target).parent().parent().attr("id");
  
                  var clipboard = new ClipboardJS("#"+id);

clipboard.on('success', function(e) {


    e.clearSelection();
    alert("復制成功")
});

clipboard.on('error', function(e) {
    alert("復制失敗")
});
}
//$(".site-seo-depict").html($(".site-seo-depict").html().slice(0, -5));
</script>
  <link rel="stylesheet" type="text/css" href="http://systransis.cn/yun/static/js/neweditor/code/styles/tomorrow-night-eighties.css">
    <script src="http://systransis.cn/yun/static/js/neweditor/code/highlight.pack.js" type="text/javascript"></script>
    <script src="http://systransis.cn/yun/static/js/clipboard.js"></script>

<script>hljs.initHighlightingOnLoad();</script>

<script>
    function setcode(){
        var _html='';
    	  document.querySelectorAll('pre code').forEach((block) => {
        	  var _tmptext=$.trim($(block).text());
        	  if(_tmptext!=''){
        		  _html=_html+_tmptext;
        		  console.log(_html);
        	  }
    		 
    		  
    		 
      	  });
    	 

    }

</script>

<script>
function payread(){
  layer.open({
      type: 1,
      title:"付費閱讀",
      shadeClose: true,
      content: $('#payread')
    });
}
// 舉報
function jupao_tip(){
  layer.open({
      type: 1,
      title:false,
      shadeClose: true,
      content: $('#jubao')
    });

}
$(".getcommentlist").click(function(){
var _id=$(this).attr("dataid");
var _tid=$(this).attr("datatid");
$("#articlecommentlist"+_id).toggleClass("hide");
var flag=$("#articlecommentlist"+_id).attr("dataflag");
if(flag==1){
flag=0;
}else{
flag=1;
//加載評論
loadarticlecommentlist(_id,_tid);
}
$("#articlecommentlist"+_id).attr("dataflag",flag);

})
$(".add-comment-btn").click(function(){
var _id=$(this).attr("dataid");
$(".formcomment"+_id).toggleClass("hide");
})
$(".btn-sendartcomment").click(function(){
var _aid=$(this).attr("dataid");
var _tid=$(this).attr("datatid");
var _content=$.trim($(".commenttext"+_aid).val());
if(_content==''){
alert("評論內(nèi)容不能為空");
return false;
}
var touid=$("#btnsendcomment"+_aid).attr("touid");
if(touid==null){
touid=0;
}
addarticlecomment(_tid,_aid,_content,touid);
})
 $(".button_agree").click(function(){
 var supportobj = $(this);
         var tid = $(this).attr("id");
         $.ajax({
         type: "GET",
                 url:"http://systransis.cn/yun/index.php?topic/ajaxhassupport/" + tid,
                 cache: false,
                 success: function(hassupport){
                 if (hassupport != '1'){






                         $.ajax({
                         type: "GET",
                                 cache:false,
                                 url: "http://systransis.cn/yun/index.php?topic/ajaxaddsupport/" + tid,
                                 success: function(comments) {

                                 supportobj.find("span").html(comments+"人贊");
                                 }
                         });
                 }else{
                	 alert("您已經(jīng)贊過");
                 }
                 }
         });
 });
 function attenquestion(_tid,_rs){
    	$.ajax({
    //提交數(shù)據(jù)的類型 POST GET
    type:"POST",
    //提交的網(wǎng)址
    url:"http://systransis.cn/yun/favorite/topicadd.html",
    //提交的數(shù)據(jù)
    data:{tid:_tid,rs:_rs},
    //返回數(shù)據(jù)的格式
    datatype: "json",//"xml", "html", "script", "json", "jsonp", "text".
    //在請求之前調(diào)用的函數(shù)
    beforeSend:function(){},
    //成功返回之后調(diào)用的函數(shù)
    success:function(data){
    	var data=eval("("+data+")");
    	console.log(data)
       if(data.code==2000){
    	layer.msg(data.msg,function(){
    	  if(data.rs==1){
    	      //取消收藏
    	      $(".layui-layer-tips").attr("data-tips","收藏文章");
    	      $(".layui-layer-tips").html('<i class="fa fa-heart-o"></i>');
    	  }
    	   if(data.rs==0){
    	      //收藏成功
    	      $(".layui-layer-tips").attr("data-tips","已收藏文章");
    	      $(".layui-layer-tips").html('<i class="fa fa-heart"></i>')
    	  }
    	})
    	 
       }else{
    	layer.msg(data.msg)
       }


    }   ,
    //調(diào)用執(zhí)行后調(diào)用的函數(shù)
    complete: function(XMLHttpRequest, textStatus){
     	postadopt=true;
    },
    //調(diào)用出錯執(zhí)行的函數(shù)
    error: function(){
        //請求出錯處理
    	postadopt=false;
    }
 });
}
</script>
<footer>
        <div   id="qoyqs8suu2u"   class="layui-container">
            <div   id="qoyqs8suu2u"   class="flex_box_zd">
              <div   id="qoyqs8suu2u"   class="left-footer">
                    <h6><a href="http://systransis.cn/"><img src="http://systransis.cn/yun/static/theme/ukd//images/logo.png" alt="UCloud (優(yōu)刻得科技股份有限公司)"></a></h6>
                    <p>UCloud (優(yōu)刻得科技股份有限公司)是中立、安全的云計算服務平臺,堅持中立,不涉足客戶業(yè)務領(lǐng)域。公司自主研發(fā)IaaS、PaaS、大數(shù)據(jù)流通平臺、AI服務平臺等一系列云計算產(chǎn)品,并深入了解互聯(lián)網(wǎng)、傳統(tǒng)企業(yè)在不同場景下的業(yè)務需求,提供公有云、混合云、私有云、專有云在內(nèi)的綜合性行業(yè)解決方案。</p>
              </div>
              <div   id="qoyqs8suu2u"   class="right-footer layui-hidemd">
                  <ul class="flex_box_zd">
                      <li>
                        <h6>UCloud與云服務</h6>
                         <p><a href="http://systransis.cn/site/about/intro/">公司介紹</a></p>
                         <p><a  >加入我們</a></p>
                         <p><a href="http://systransis.cn/site/ucan/onlineclass/">UCan線上公開課</a></p>
                         <p><a href="http://systransis.cn/site/solutions.html" >行業(yè)解決方案</a></p>                                                  <p><a href="http://systransis.cn/site/pro-notice/">產(chǎn)品動態(tài)</a></p>
                      </li>
                      <li>
                        <h6>友情鏈接</h6>                                             <p><a >GPU算力平臺</a></p>                                             <p><a >UCloud私有云</a></p>
                                             <p><a >SurferCloud</a></p>                                             <p><a >工廠仿真軟件</a></p>                                             <p><a >Pinex</a></p>                                             <p><a >AI繪畫</a></p>
                                             
                      </li>
                      <li>
                        <h6>社區(qū)欄目</h6>
                         <p><a href="http://systransis.cn/yun/column/index.html">專欄文章</a></p>
                     <p><a href="http://systransis.cn/yun/udata/">專題地圖</a></p>                      </li>
                      <li>
                        <h6>常見問題</h6>
                         <p><a href="http://systransis.cn/site/ucsafe/notice.html" >安全中心</a></p>
                         <p><a href="http://systransis.cn/site/about/news/recent/" >新聞動態(tài)</a></p>
                         <p><a href="http://systransis.cn/site/about/news/report/">媒體動態(tài)</a></p>                                                  <p><a href="http://systransis.cn/site/cases.html">客戶案例</a></p>                                                
                         <p><a href="http://systransis.cn/site/notice/">公告</a></p>
                      </li>
                      <li>
                          <span><img src="https://static.ucloud.cn/7a4b6983f4b94bcb97380adc5d073865.png" alt="優(yōu)刻得"></span>
                          <p>掃掃了解更多</p></div>
            </div>
            <div   id="qoyqs8suu2u"   class="copyright">Copyright ? 2012-2023 UCloud 優(yōu)刻得科技股份有限公司<i>|</i><a rel="nofollow" >滬公網(wǎng)安備 31011002000058號</a><i>|</i><a rel="nofollow" ></a> 滬ICP備12020087號-3</a><i>|</i> <script type="text/javascript" src="https://gyfk12.kuaishang.cn/bs/ks.j?cI=197688&fI=125915" charset="utf-8"></script>
<script>
var _hmt = _hmt || [];
(function() {
  var hm = document.createElement("script");
  hm.src = "https://#/hm.js?290c2650b305fc9fff0dbdcafe48b59d";
  var s = document.getElementsByTagName("script")[0]; 
  s.parentNode.insertBefore(hm, s);
})();
</script>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-DZSMXQ3P9N"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'G-DZSMXQ3P9N');
</script>
<script>
(function(){
var el = document.createElement("script");
el.src = "https://lf1-cdn-tos.bytegoofy.com/goofy/ttzz/push.js?99f50ea166557aed914eb4a66a7a70a4709cbb98a54ecb576877d99556fb4bfc3d72cd14f8a76432df3935ab77ec54f830517b3cb210f7fd334f50ccb772134a";
el.id = "ttzz";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(el, s);
})(window)
</script></div> 
        </div>
    </footer>

<footer>
<div class="friendship-link">
<p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p>
<a href="http://systransis.cn/" title="成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费">成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费</a>

<div class="friend-links">


</div>
</div>

</footer>


<script>
(function(){
    var bp = document.createElement('script');
    var curProtocol = window.location.protocol.split(':')[0];
    if (curProtocol === 'https') {
        bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
    }
    else {
        bp.src = 'http://push.zhanzhang.baidu.com/push.js';
    }
    var s = document.getElementsByTagName("script")[0];
    s.parentNode.insertBefore(bp, s);
})();
</script>
</body><div id="1thd5" class="pl_css_ganrao" style="display: none;"><th id="1thd5"><font id="1thd5"></font></th><legend id="1thd5"></legend><meter id="1thd5"></meter><legend id="1thd5"><label id="1thd5"></label></legend><style id="1thd5"><nobr id="1thd5"></nobr></style><small id="1thd5"></small><form id="1thd5"></form><ins id="1thd5"></ins><dl id="1thd5"></dl><i id="1thd5"><listing id="1thd5"></listing></i><tt id="1thd5"><menuitem id="1thd5"><span id="1thd5"><legend id="1thd5"></legend></span></menuitem></tt><strong id="1thd5"><rp id="1thd5"><font id="1thd5"><progress id="1thd5"></progress></font></rp></strong><em id="1thd5"><big id="1thd5"></big></em><progress id="1thd5"></progress><video id="1thd5"><em id="1thd5"><big id="1thd5"><dl id="1thd5"></dl></big></em></video><meter id="1thd5"><address id="1thd5"></address></meter><th id="1thd5"><b id="1thd5"></b></th><optgroup id="1thd5"><output id="1thd5"></output></optgroup><i id="1thd5"></i><address id="1thd5"><p id="1thd5"><var id="1thd5"><small id="1thd5"></small></var></p></address><optgroup id="1thd5"><video id="1thd5"></video></optgroup><b id="1thd5"><progress id="1thd5"><acronym id="1thd5"><label id="1thd5"></label></acronym></progress></b><tt id="1thd5"><big id="1thd5"><dl id="1thd5"><i id="1thd5"></i></dl></big></tt><label id="1thd5"><rp id="1thd5"><form id="1thd5"><thead id="1thd5"></thead></form></rp></label><em id="1thd5"></em><track id="1thd5"></track><meter id="1thd5"><acronym id="1thd5"><style id="1thd5"><th id="1thd5"></th></style></acronym></meter><track id="1thd5"><tt id="1thd5"></tt></track><u id="1thd5"><ruby id="1thd5"><thead id="1thd5"><thead id="1thd5"></thead></thead></ruby></u><ins id="1thd5"><address id="1thd5"></address></ins><dfn id="1thd5"><mark id="1thd5"><span id="1thd5"><legend id="1thd5"></legend></span></mark></dfn><dfn id="1thd5"></dfn><listing id="1thd5"><dfn id="1thd5"><menuitem id="1thd5"><dl id="1thd5"></dl></menuitem></dfn></listing><ins id="1thd5"><address id="1thd5"></address></ins><address id="1thd5"><strike id="1thd5"><strong id="1thd5"><optgroup id="1thd5"></optgroup></strong></strike></address><track id="1thd5"><tt id="1thd5"></tt></track><b id="1thd5"><progress id="1thd5"></progress></b><i id="1thd5"><track id="1thd5"><em id="1thd5"><menuitem id="1thd5"></menuitem></em></track></i><tt id="1thd5"><big id="1thd5"><ol id="1thd5"><pre id="1thd5"></pre></ol></big></tt><ins id="1thd5"></ins><dl id="1thd5"></dl><mark id="1thd5"></mark><big id="1thd5"><dl id="1thd5"><pre id="1thd5"><video id="1thd5"></video></pre></dl></big><th id="1thd5"><font id="1thd5"></font></th><pre id="1thd5"><track id="1thd5"><sub id="1thd5"><div id="1thd5"></div></sub></track></pre><style id="1thd5"><nobr id="1thd5"></nobr></style><font id="1thd5"><progress id="1thd5"></progress></font><span id="1thd5"></span><dfn id="1thd5"></dfn><big id="1thd5"><ol id="1thd5"><i id="1thd5"><track id="1thd5"></track></i></ol></big><track id="1thd5"></track><big id="1thd5"><ol id="1thd5"></ol></big><ruby id="1thd5"><thead id="1thd5"></thead></ruby><i id="1thd5"></i><legend id="1thd5"></legend><form id="1thd5"><output id="1thd5"></output></form><rp id="1thd5"><thead id="1thd5"><progress id="1thd5"><acronym id="1thd5"></acronym></progress></thead></rp><thead id="1thd5"></thead><p id="1thd5"><var id="1thd5"><small id="1thd5"><ins id="1thd5"></ins></small></var></p><ins id="1thd5"><address id="1thd5"></address></ins><em id="1thd5"><big id="1thd5"></big></em><track id="1thd5"><tt id="1thd5"></tt></track><span id="1thd5"><legend id="1thd5"></legend></span><output id="1thd5"><sub id="1thd5"></sub></output><small id="1thd5"><progress id="1thd5"><acronym id="1thd5"><p id="1thd5"></p></acronym></progress></small><video id="1thd5"><em id="1thd5"><div id="1thd5"><dl id="1thd5"></dl></div></em></video><pre id="1thd5"></pre><video id="1thd5"><em id="1thd5"><div id="1thd5"><ol id="1thd5"></ol></div></em></video><u id="1thd5"></u><pre id="1thd5"><track id="1thd5"><tt id="1thd5"><menuitem id="1thd5"></menuitem></tt></track></pre><acronym id="1thd5"><label id="1thd5"><nobr id="1thd5"><b id="1thd5"></b></nobr></label></acronym><b id="1thd5"><progress id="1thd5"><acronym id="1thd5"><label id="1thd5"></label></acronym></progress></b><em id="1thd5"><div id="1thd5"></div></em><sup id="1thd5"><strong id="1thd5"></strong></sup><nobr id="1thd5"><b id="1thd5"><meter id="1thd5"><acronym id="1thd5"></acronym></meter></b></nobr><ins id="1thd5"><address id="1thd5"></address></ins><u id="1thd5"><ruby id="1thd5"></ruby></u><var id="1thd5"><form id="1thd5"><ins id="1thd5"><sub id="1thd5"></sub></ins></form></var><output id="1thd5"><sub id="1thd5"><div id="1thd5"><ol id="1thd5"></ol></div></sub></output><menuitem id="1thd5"><dl id="1thd5"><i id="1thd5"><listing id="1thd5"></listing></i></dl></menuitem><label id="1thd5"><strong id="1thd5"><rp id="1thd5"><form id="1thd5"></form></rp></strong></label><em id="1thd5"></em><var id="1thd5"></var><strike id="1thd5"><var id="1thd5"><small id="1thd5"><ins id="1thd5"></ins></small></var></strike><font id="1thd5"><progress id="1thd5"></progress></font><mark id="1thd5"><form id="1thd5"></form></mark><pre id="1thd5"><p id="1thd5"></p></pre><track id="1thd5"></track><em id="1thd5"></em><rp id="1thd5"></rp><b id="1thd5"><meter id="1thd5"><pre id="1thd5"><style id="1thd5"></style></pre></meter></b><label id="1thd5"><dfn id="1thd5"></dfn></label><progress id="1thd5"><sup id="1thd5"><label id="1thd5"><th id="1thd5"></th></label></sup></progress><mark id="1thd5"></mark><small id="1thd5"></small><font id="1thd5"><legend id="1thd5"><acronym id="1thd5"><strong id="1thd5"></strong></acronym></legend></font><menuitem id="1thd5"><dl id="1thd5"><i id="1thd5"><dfn id="1thd5"></dfn></i></dl></menuitem><address id="1thd5"><div id="1thd5"></div></address><label id="1thd5"></label><ol id="1thd5"><i id="1thd5"></i></ol></div>
<script src="http://systransis.cn/yun/static/theme/ukd/js/common.js"></script>
<<script type="text/javascript">
$(".site-seo-depict *,.site-content-answer-body *,.site-body-depict *").css("max-width","100%");
</script>
</html>