亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Selenium2學習-018-WebUI自動化實戰實例-016-自

系統 1740 0

日常的 Web 網站開發的過程中,為提升登錄安全或防止用戶通過腳本進行黃牛操作(宇宙最貴鐵皮天朝魔都的機動車牌照競拍中),很多網站在登錄的時候,添加了驗證碼驗證,而且驗證碼的實現越來越復雜,對其進行腳本識別的難度也越來越高。這對我們自動化腳本編寫帶了非常的不便,那么如何解決登錄時的驗證碼問題呢?經常有初學自動化腳本編寫的小主們問及此問題。

此文主要針對如何解決自動化測試腳本中含登錄態的操作問題,即如何降低驗證碼對自動化腳本編寫過程中的解決方法進行分析和解決,并以實例演示(基于易迅網易迅賬號登錄)。解決驗證碼的問題,一般有以下幾種方法:

1、 驗證碼識別技術(OCR)。通過驗證碼識別技術,識別登錄過程中出現的驗證碼。此種方法不建議使用,浪費大量的人力物力,得不償失。

2、萬能驗證碼。例如:規定接收到的 ”aaron“ 為萬能驗證碼,若服務器接收到了此驗證碼,則返回正確登錄信息。此方法的缺陷是無法在線上使用,因為無法保證萬能驗證碼的安全性。因而此方法一般應用于測試環境。

3、Cookie 越界登錄。通過將用戶登錄的 cookie 信息添加至瀏覽器,直接越過登錄操作(間接的跳過驗證碼輸入),將用戶的登錄態添加到瀏覽器,即可進行相應的登錄態用戶操作。雖然此種方法有一定的局限性(受 cookie 的有效時間限制),俺還是比較推崇此種方法。

上述第一種方法,非常簡單,在此就不再贅述了;第二種方法,有興趣的小主大牛們可以嘗試一下。下面主要以第三種方法為實例演示,基于易迅網易迅賬號登錄的 cookie 添加。

閑話少述,小二上碼。。。敬請各位小主參閱,希望能對您在日常的 WebUI 自動化腳本編寫有一定的啟發和幫助。若有不足或錯誤之處,敬請大神指正,不勝感激!

        
           1
        
        
          /**
        
        
           2
        
        
           * Aaron.ffp Inc.


        
        
           3
        
        
           * Copyright (c) 2004-2015 All Rights Reserved.


        
        
           4
        
        
          */
        
        
           5
        
        
          package
        
        
           main.aaron.demo.cookie;


        
        
           6
        
        
           7
        
        
          import
        
        
           java.io.BufferedReader;


        
        
           8
        
        
          import
        
        
           java.io.File;


        
        
           9
        
        
          import
        
        
           java.io.FileReader;


        
        
          10
        
        
          import
        
        
           java.util.Date;


        
        
          11
        
        
          12
        
        
          import
        
        
           main.aaron.sele.core.TestCase;


        
        
          13
        
        
          14
        
        
          import
        
        
           org.openqa.selenium.Cookie;


        
        
          15
        
        
          import
        
        
           org.testng.Assert;


        
        
          16
        
        
          import
        
        
           org.testng.annotations.AfterClass;


        
        
          17
        
        
          import
        
        
           org.testng.annotations.Test;


        
        
          18
        
        
          19
        
        
          /**
        
        
          20
        
        
           * Add cookie to web browser


        
        
          21
        
        
           * 


        
        
          22
        
        
           * 
        
        
          @author
        
        
           Aaron.ffp


        
        
          23
        
        
           * 
        
        
          @version
        
        
           V1.0.0: autoSeleniumDemo main.aaron.demo.cookie UseCookieLogin.java, 2015-6-19 15:53:53 Exp $


        
        
          24
        
        
          */
        
        
          25
        
        
          public
        
        
          class
        
         UseCookieLogin 
        
          extends
        
        
           TestCase{


        
        
          26
        
        
          private
        
        
          final
        
         String f_cookie = 
        
          this
        
        .PROJECTHOME + 
        
          this
        
        .FILESEPARATOR + "cookie" + 
        
          this
        
        .FILESEPARATOR + "browser.data"
        
          ;


        
        
          27
        
        
          private
        
         String baseUrl = "http://www.yixun.com/"
        
          ;


        
        
          28
        
        
          29
        
        
              @Test


        
        
          30
        
        
          public
        
        
          void
        
        
           useCookieLogin(){


        
        
          31
        
        
          this
        
        .webdriver.get(
        
          this
        
        
          .baseUrl);


        
        
          32
        
        
          33
        
        
          try
        
        
           {


        
        
          34
        
        
          //
        
        
           clean the invalid cookie
        
        
          35
        
        
          this
        
        
          .webdriver.manage().deleteAllCookies();


        
        
          36
        
        
          37
        
        
          //
        
        
           create file object
        
        
          38
        
                     File f = 
        
          new
        
         File(
        
          this
        
        
          .f_cookie);


        
        
          39
        
        
          40
        
        
          //
        
        
           read file
        
        
          41
        
                     FileReader fr = 
        
          new
        
        
           FileReader(f);


        
        
          42
        
                     BufferedReader br = 
        
          new
        
        
           BufferedReader(fr);


        
        
          43
        
        
          44
        
        
          //
        
        
           store row cookie info
        
        
          45
        
        
                      String line;


        
        
          46
        
        
          47
        
        
          //
        
        
           add cookie to web browser
        
        
          48
        
        
          while
        
         ((line = br.readLine()) != 
        
          null
        
        
          ) {


        
        
          49
        
                         String[] item = line.split(";"
        
          );


        
        
          50
        
        
          51
        
        
          if
        
         (item.length != 6
        
          ) {


        
        
          52
        
        
          continue
        
        
          ;


        
        
          53
        
        
                          }


        
        
          54
        
        
          55
        
        
          for
        
         (
        
          int
        
         i = 0; i < item.length; i++
        
          ) {


        
        
          56
        
                             String name = item[0
        
          ];


        
        
          57
        
                             String value = item[1
        
          ];


        
        
          58
        
                             String domain = item[2
        
          ];


        
        
          59
        
                             String path = item[3
        
          ];


        
        
          60
        
                             Date expiry = 
        
          null
        
        
          ;


        
        
          61
        
        
          boolean
        
         isSecure = 
        
          new
        
         Boolean(item[5
        
          ]);


        
        
          62
        
        
          63
        
        
          //
        
        
           create cookie object
        
        
          64
        
                             Cookie cookie = 
        
          new
        
        
           Cookie(name, value, domain, path, expiry, isSecure);


        
        
          65
        
        
          66
        
        
          //
        
        
           add cookie to web browser
        
        
          67
        
        
          this
        
        
          .webdriver.manage().addCookie(cookie);


        
        
          68
        
        
                          }


        
        
          69
        
        
                      }


        
        
          70
        
        
          71
        
        
                      br.close();


        
        
          72
        
                 } 
        
          catch
        
        
           (Exception e) {


        
        
          73
        
        
                      e.printStackTrace();


        
        
          74
        
                     Assert.fail((e.getMessage() == 
        
          null
        
        )? ""
        
          :e.getMessage());


        
        
          75
        
        
                  }


        
        
          76
        
        
          77
        
        
          this
        
        .webdriver.get(
        
          this
        
        
          .baseUrl);


        
        
          78
        
        
              }


        
        
          79
        
        
          80
        
        
              @AfterClass


        
        
          81
        
        
          public
        
        
          void
        
        
           afterClass(){


        
        
          82
        
        
          this
        
        
          .webdriver.close();


        
        
          83
        
        
          this
        
        
          .webdriver.quit();


        
        
          84
        
        
              }


        
        
          85
        
         }
      
易迅網易迅賬號 cookie 添加實戰實例演示源代碼

關于如何獲取登錄的 cookie 信息數據并保存,請參閱 Selenium2學習-017-WebUI自動化實戰實例-015-獲取瀏覽器中的 cookie 信息

PS:小主們在應用以上源碼時,需要將源碼中的 cookie 文件位置修改為本地合法路徑才可:private final String f_cookie = this.PROJECTHOME + this.FILESEPARATOR + "cookie" + this.FILESEPARATOR + "browser.data";

?

至此, WebUI 自動化功能測試腳本 第 016-自動化腳本編寫過程中的登錄驗證碼問題 順利完結,希望此文能夠給初學 Selenium 的您一份參考。

最后,非常感謝親的駐足,希望此文能對親有所幫助。熱烈歡迎親一起探討,共同進步。非常感謝! ^_^

Selenium2學習-018-WebUI自動化實戰實例-016-自動化腳本編寫過程中的登錄驗證碼問題


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 久久精品国产免费 | 狠狠色噜噜狠狠狠狠91 | 欧美日本一级在线播放 | 99热久久这里只有精品6 | 久久影院一区 | 中文字幕日韩在线观看 | 99视频精品全国在线观看 | 成人精品一区二区三区中文字幕 | 日韩欧美印度一级毛片 | 久久天天 | 91在线看片 | 真人特级毛片免费视频 | 日本爱情动作片网址 | 欧美精品成人一区二区视频一 | 欧美黄视频在线观看 | 国内精品一级毛片免费看 | 亚洲精品久久久久久下一站 | 久久久精品成人免费看 | 伊人久久久综在合线久久在播 | 奇米影视亚洲狠狠色 | 九月婷婷亚洲综合在线 | 久精品视频 | 最新国产午夜精品视频不卡 | 日本一级毛片 | 成人影院久久久久久影院 | 精品国产一二三区在线影院 | 久久福利在线 | 国产爽片在线观看 | 射综合网 | 亚洲日本在线观看 | 国产欧美一区二区三区在线看 | 久99久热只有精品国产99 | 久久最近最新中文字幕大全 | 久久久中文字幕 | 在线免费观看国产精品 | 国产亚洲第一伦理第一区 | 日本爽快片100色毛片 | 色网在线免费观看 | 国产精品成人网 | 99久久这里只有精品 | 污宅男666在线永久免费观看 |