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

Selenium2學(xué)習(xí)-018-WebUI自動(dòng)化實(shí)戰(zhàn)實(shí)例-016-自

系統(tǒng) 2030 0

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

此文主要針對(duì)如何解決自動(dòng)化測(cè)試腳本中含登錄態(tài)的操作問(wèn)題,即如何降低驗(yàn)證碼對(duì)自動(dòng)化腳本編寫過(guò)程中的解決方法進(jìn)行分析和解決,并以實(shí)例演示(基于易迅網(wǎng)易迅賬號(hào)登錄)。解決驗(yàn)證碼的問(wèn)題,一般有以下幾種方法:

1、 驗(yàn)證碼識(shí)別技術(shù)(OCR)。通過(guò)驗(yàn)證碼識(shí)別技術(shù),識(shí)別登錄過(guò)程中出現(xiàn)的驗(yàn)證碼。此種方法不建議使用,浪費(fèi)大量的人力物力,得不償失。

2、萬(wàn)能驗(yàn)證碼。例如:規(guī)定接收到的 ”aaron“ 為萬(wàn)能驗(yàn)證碼,若服務(wù)器接收到了此驗(yàn)證碼,則返回正確登錄信息。此方法的缺陷是無(wú)法在線上使用,因?yàn)闊o(wú)法保證萬(wàn)能驗(yàn)證碼的安全性。因而此方法一般應(yīng)用于測(cè)試環(huán)境。

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

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

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

        
           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
        
         }
      
易迅網(wǎng)易迅賬號(hào) cookie 添加實(shí)戰(zhàn)實(shí)例演示源代碼

關(guān)于如何獲取登錄的 cookie 信息數(shù)據(jù)并保存,請(qǐng)參閱 Selenium2學(xué)習(xí)-017-WebUI自動(dòng)化實(shí)戰(zhàn)實(shí)例-015-獲取瀏覽器中的 cookie 信息

PS:小主們?cè)趹?yīng)用以上源碼時(shí),需要將源碼中的 cookie 文件位置修改為本地合法路徑才可:private final String f_cookie = this.PROJECTHOME + this.FILESEPARATOR + "cookie" + this.FILESEPARATOR + "browser.data";

?

至此, WebUI 自動(dòng)化功能測(cè)試腳本 第 016-自動(dòng)化腳本編寫過(guò)程中的登錄驗(yàn)證碼問(wèn)題 順利完結(jié),希望此文能夠給初學(xué) Selenium 的您一份參考。

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

Selenium2學(xué)習(xí)-018-WebUI自動(dòng)化實(shí)戰(zhàn)實(shí)例-016-自動(dòng)化腳本編寫過(guò)程中的登錄驗(yàn)證碼問(wèn)題


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

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

【本文對(duì)您有幫助就好】

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

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 国产精品视频不卡 | 国产一区 在线视频 | 国产成人在线小视频 | 亚洲综合精品一区二区三区中文 | 亚洲国产成人久久综合区 | 亚洲精品一区二区伦理 | 亚洲九九精品 | 亚洲欧美婷婷 | 欧美jizzhd精品欧美4k | 亚洲精品久一区 | 青青草一区二区免费精品 | 中文一级国产特级毛片视频 | 国产香蕉在线精彩视频 | 国产午夜精品一区二区三区嫩草 | 日韩视频大全 | 欧美综合视频在线 | 午夜j| 国产欧美国产精品第二区 | 天天干网站 | 亚洲欧美日韩国产精品26u | 国产精品久久亚洲不卡动漫 | 欧美日本另类xxx乱大交 | 久久加勒比 | 在线欧美一区 | 亚洲国产精品久久久久 | 久久九九有精品国产23百花影院 | 玖玖免费| 在线观看免费黄色小视频 | 波多野结中文字幕在线69视频 | 亚欧精品一区二区三区 | 成人在线免费小视频 | 一区二区高清视频 | 91精品综合久久久久m3u8 | 日韩欧美亚洲中字幕在线播放 | 毛片在线免费视频 | 国产国拍亚洲精品福利 | 特级女人十八毛片a级 | 国产成人亚洲精品乱码在线观看 | 色射色 | 午夜 福利 | 久久久久久国产视频 |