国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

博客系統(tǒng)之自動化測試

這篇具有很好參考價值的文章主要介紹了博客系統(tǒng)之自動化測試。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

背景:針對個人博客項目進(jìn)行測試,個人博客主要由四個頁面構(gòu)成:登錄頁、列表頁、詳情頁和編輯頁,主要功能包括:用戶登錄功能、發(fā)布博客功能、查看文章詳情功能、查看文章列表功能、刪除文章功能、退出功能。對于個人博客的測試主要就是針對主要功能進(jìn)行測試,然后按照頁面書寫測試類。

自動化測試一般步驟
1)使用腦圖編寫web自動化測試用例
2)創(chuàng)建自動化項目,根據(jù)用例來實現(xiàn)腳本

?一、腦圖

對主要功能進(jìn)行測試:

?

博客系統(tǒng)之自動化測試,博客系統(tǒng)項目測試,selenium,自動化

?二、代碼編寫

  1. 根據(jù)腦圖進(jìn)行測試用例的編寫:每個頁面一個測試類,然后再各個測試類中進(jìn)行測試用例的編寫。
  2. 使用測試套件便于運行以及修改。
  3. 創(chuàng)建啟動會頻繁進(jìn)行復(fù)用,所以單獨創(chuàng)建一個類進(jìn)行存儲。
  4. 添加隱式等待,為了確保頁面正確加載渲染。

1. 添加相關(guān)依賴pom.xml?

<dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.2</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter</artifactId>
            <version>RELEASE</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter</artifactId>
            <version>RELEASE</version>
            <scope>compile</scope>
        </dependency>

        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>3.141.59</version>
        </dependency>

2. 新建包并在包下創(chuàng)建測試類

博客系統(tǒng)之自動化測試,博客系統(tǒng)項目測試,selenium,自動化

2.1公共類InitAndEnd

1.在所有測試開始之前加載驅(qū)動

2.在所有測試結(jié)束后關(guān)閉驅(qū)動

public class InitAndEnd {
    static WebDriver webDriver;
    @BeforeAll
    static void Init(){
        webDriver = new ChromeDriver();
    }

    @AfterAll
    static void End(){
        webDriver.quit();
    }
}

?2.2? BlogCases 類

1.測試用戶登錄功能

2.測試發(fā)布博客功能

3.測試查看文章詳情功能

4.測試查看文章列表功能

5.測試刪除文章功能

6.測試退出功能


@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
public class BlogCases extends InitAndEnd{
    /**
     * 登錄
     */
    @Order(1)
    @ParameterizedTest
    @CsvSource(value = "張三,123456")
    void Login(String username,String password){
        //打開登錄頁面
        webDriver.get("http://localhost:8080/blog_war/blog_login.html");
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        //輸入用戶名
        webDriver.findElement(By.cssSelector("#username")).sendKeys(username);
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        //輸入密碼
        webDriver.findElement(By.cssSelector("#password")).sendKeys(password);
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        //點擊提交
        webDriver.findElement(By.cssSelector("#btn_login_submit")).click();
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        //校驗當(dāng)前登錄的用戶是不是張三,如果是測試通過,否則測試不通過
        String user_name = webDriver.findElement(By.cssSelector("h3")).getText();
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        Assertions.assertEquals(username,user_name);
        System.out.println("成功登錄");
    }

    /**
     * 博客列表
     */
    @Order(2)
    @Test
    void BlogList() {
        webDriver.get("http://localhost:8080/blog_war/blog_login.html");
        webDriver.manage().timeouts().implicitlyWait(3000, TimeUnit.SECONDS);
        int blog_num = webDriver.findElements(By.cssSelector(".title")).size();
        Assertions.assertNotEquals(0, blog_num);
        String page_title = webDriver.getTitle();
        Assertions.assertEquals(page_title, "用戶登錄");
        System.out.println("博客列表加載成功");
    }
    /**
     *
     * 博客詳情頁校驗
     */
    @Order(3)
    @Test
    void BlogDetail() {
        // 打開列表頁
        webDriver.get("http://localhost:8080/blog_war/blog_list.html");
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        // 找到查看全文按鈕,點擊
        webDriver.findElement(By.xpath("/html/body/div[2]/div[2]/div[1]/div[4]/a")).click();
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        // 獲取博客標(biāo)題
        String blog_title = webDriver.findElement(By.cssSelector("#div_detals_title")).getText();
        // 如果博客正文不為空,測試通過
        // 否則測試不通過
        Assertions.assertNotNull(blog_title);
        System.out.println("博客詳情頁校驗");
    }

    /**
     * 寫博客
     */
    @Order(4)
    @Test
    void EditBlog() throws IOException, InterruptedException {
        // 找到寫博客按鈕,點擊
        webDriver.findElement(By.cssSelector("body > div.nav > div > div > a:nth-child(2)")).click();
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        // 執(zhí)行js(選中標(biāo)題輸入框,輸入字符串)
        ((JavascriptExecutor)webDriver).executeScript("document.querySelector(\"#title\").value=\"自動化測試\"");
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        //編輯頁的md是第三方插件,所以不可以直接使用sendkeys像編輯板塊寫入內(nèi)容,可以先點擊上方按鈕,然后進(jìn)行插入
        webDriver.findElement(By.cssSelector("#blog_edit > div.editormd-toolbar > div > ul > li:nth-child(20)")).click();
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        ((JavascriptExecutor)webDriver).executeScript("document.querySelector(\"#text_edit_content\").value=\"自動化測試\"");
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        webDriver.findElement(By.cssSelector("#submit")).click();
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        sleep(3000);
        //對彈出框校驗
        webDriver.switchTo().alert().accept();
        // 校驗頁面跳轉(zhuǎn)到列表頁
        sleep(3000);
        String cur_url = webDriver.getCurrentUrl();
        Assertions.assertEquals("http://localhost:8080/blog_war/blog_list.html", cur_url);
        // 校驗第一條博客標(biāo)題是不是剛剛發(fā)布的博客標(biāo)題
        String first_blog_titlt = webDriver.findElement(By.xpath("/html/body/div[2]/div[2]/div[1]/div[1]")).getText();
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        Assertions.assertEquals("自動化測試", first_blog_titlt);
        System.out.println("寫博客校驗");
    }
    /**
     * 刪除博客
     */
    @Order(5)
    @Test
    void DeleteBolg() throws InterruptedException {
        // 找到查看全文按鈕,點擊
        webDriver.findElement(By.xpath("/html/body/div[2]/div[2]/div[1]/div[4]/a")).click();
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        // 找到刪除按鈕,點擊
        webDriver.findElement(By.cssSelector("body > div.nav > div > div > a:nth-child(4)")).click();
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        sleep(3000);
        //對彈出框進(jìn)行處理
        webDriver.switchTo().alert().accept();
        sleep(3000);
        // 校驗當(dāng)前頁面是否跳轉(zhuǎn)到博客列表頁面
        String cur_url = webDriver.getCurrentUrl();
        Assertions.assertEquals("http://localhost:8080/blog_war/blog_list.html", cur_url);
        // 獲取博客發(fā)布是時間
        String blog_release_time = webDriver.findElement(By.xpath("/html/body/div[2]/div[2]/div[1]/div[2]")).getText();
        // 如果博客發(fā)布時間包括2023-08-18測試 不通過
        // 否則測試通過
        if(blog_release_time.contains("2023-08-18")) {
            System.out.println("博客發(fā)布時間:" + blog_release_time);
            System.out.println("測試不通過");
        } else {
            System.out.println("測試通過");
        }
    }
    /**
     * 退出博客
     */
    @Order(6)
    @Test
    void LogOut() throws InterruptedException {
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        // 找到退出按鈕,點擊
        webDriver.findElement(By.cssSelector("#a_list_logout")).click();
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        // 校驗頁面是否有登錄文案
        String login_text = webDriver.findElement(By.cssSelector("body > div.login-container > form > div > div.title")).getText();
        // 如果有登錄文案,退出成功(測試用例通過)
        // 否則,退出失?。y試不通過)
        sleep(3000);
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        if(login_text.equals("用戶登錄")) {
            System.out.println("測試通過");
        } else {
            System.out.println("測試不通過");
        }
    }

}

3.測試結(jié)果

所有測試用例通過,如圖所示

博客系統(tǒng)之自動化測試,博客系統(tǒng)項目測試,selenium,自動化文章來源地址http://www.zghlxwxcb.cn/news/detail-656735.html

到了這里,關(guān)于博客系統(tǒng)之自動化測試的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【軟件測試】基于博客系統(tǒng)的自動化測試

    【軟件測試】基于博客系統(tǒng)的自動化測試

    目錄 1.我的博客系統(tǒng)鏈接 2.使用selenium對博客系統(tǒng)進(jìn)行自動化測試 1.引入依賴 2.創(chuàng)建公共類 3.創(chuàng)建測試套件類 4.測試登陸界面 5. 測試博客列表頁 6.測試寫博客頁面 7.測試刪除博客 8.最終運行結(jié)果 用戶登錄 創(chuàng)建一個maven項目,在pop.xml中引入以下依賴 因為對每一個頁面進(jìn)行測試

    2024年02月15日
    瀏覽(22)
  • 自動化項目實戰(zhàn) [個人博客系統(tǒng)]

    自動化項目實戰(zhàn) [個人博客系統(tǒng)]

    效驗第一篇博客 不是 “自動化測試” 退出到登錄頁面,用戶名密碼為空

    2024年02月08日
    瀏覽(17)
  • Python+Selenium自動化測試項目實戰(zhàn)

    Python+Selenium自動化測試項目實戰(zhàn)

    第 1 章 自動化測試 1.1、自動化測試介紹 自動化測試就是通過自動化測試工具幫我們打開瀏覽器,輸入網(wǎng)址,輸入賬號密碼登錄,及登錄后的操作,總的說來自動化測試就是通過自動化測試腳本來幫我們從繁瑣重復(fù)的手工測試?yán)锩娼饷摮鰜?,把時間和精力花到更好的地方去,

    2023年04月17日
    瀏覽(26)
  • 對個人博客系統(tǒng)進(jìn)行web自動化測試(包含測試代碼和測試的詳細(xì)過程)

    對個人博客系統(tǒng)進(jìn)行web自動化測試(包含測試代碼和測試的詳細(xì)過程)

    目錄 一、總述 二、登錄頁面測試 一些準(zhǔn)備工作? 驗證頁面顯示是否正確 ?驗證正常登錄的情況 該過程中出現(xiàn)的問題 驗證登錄失敗的情況 ?關(guān)于登錄界面的總代碼? 測試視頻 三、注冊界面的自動化測試 測試代碼 過程中出現(xiàn)的bug? 測試視頻 四、博客列表頁測試 登錄情況下的

    2024年02月05日
    瀏覽(25)
  • po+selenium+unittest自動化測試項目實戰(zhàn)

    po+selenium+unittest自動化測試項目實戰(zhàn)

    1、新建一個包名:common(用于存放基本函數(shù)封裝) (1)在common包下新建一個base.py文件,作用:頁面操作封裝。base.py文件代碼如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64

    2024年01月17日
    瀏覽(24)
  • Python Selenium3 自動化測試實戰(zhàn):構(gòu)建高效測試項目

    Python Selenium3 自動化測試實戰(zhàn):構(gòu)建高效測試項目

    ?? 個人網(wǎng)站:【 海擁】【神級代碼資源網(wǎng)站】【辦公神器】 ?? 基于Web端打造的:??輕量化工具創(chuàng)作平臺 ?? 想尋找共同學(xué)習(xí)交流的小伙伴,請點擊【全棧技術(shù)交流群】 在當(dāng)今軟件開發(fā)領(lǐng)域,自動化測試成為確保軟件質(zhì)量和提高開發(fā)效率的關(guān)鍵步驟。本文將深入探討如何使

    2024年02月05日
    瀏覽(30)
  • 【python+selenium自動化測試實戰(zhàn)項目】全面、完整、詳細(xì)

    【python+selenium自動化測試實戰(zhàn)項目】全面、完整、詳細(xì)

    項目名稱:**公司電子零售會員系統(tǒng) 項目目的:實現(xiàn)電子零售會員系統(tǒng)項目自動化測試執(zhí)行 項目版本:v1.0 項目目錄 項目環(huán)境 本版 python 36 pip insatll selenium PyCharm 2017.2.4 Windows 10 10.0 HTMLTestRunner.py 項目框架 unittest單元測試框架 pageobject 設(shè)計模式 UI對象庫思想 項目設(shè)計 1.一個模

    2024年02月06日
    瀏覽(35)
  • Python+selenium自動化測試實戰(zhàn)項目(全面,完整,詳細(xì))

    前言 之前的文章說過, 要寫一篇自動化實戰(zhàn)的文章, 這段時間比較忙再加回家過清明一直沒有更新,今天整理一下實戰(zhàn)項目的代碼共大家學(xué)習(xí)。(注:項目是針對我們公司內(nèi)部系統(tǒng)的測試,只能內(nèi)部網(wǎng)絡(luò)訪問,外部網(wǎng)絡(luò)無法訪問) 問: 1.外部網(wǎng)絡(luò)無法訪問,代碼也無法運行

    2024年02月13日
    瀏覽(27)
  • selenium+python web自動化測試框架項目實戰(zhàn)實例教程

    selenium+python web自動化測試框架項目實戰(zhàn)實例教程

    自動化測試對程序的回歸測試更方便。 由于回歸測試的動作和用例是完全設(shè)計好的,測試期望的結(jié)果也是完全可以預(yù)料的,將回歸測試自動運行... 可以運行更加繁瑣的測試 自動化測試的一個明顯好處就是可以在很短的時間內(nèi)運行更多的測試。學(xué)習(xí)自動化測試最終目的是應(yīng)用到

    2024年02月06日
    瀏覽(36)
  • selenium+pytest進(jìn)行自動化測試(項目:白羽黑月SMS)

    最近在學(xué)習(xí)selenium和pytest,剛好找到一個合適的項目學(xué)習(xí),根據(jù)bysms給出來的測試用例進(jìn)行自動化測試編寫 首先先寫了登錄的測試用例,因為后續(xù)測試都是在登陸的基礎(chǔ)上測試的,所以把這單獨寫出來 創(chuàng)建一個login_success.py文件 隨后新建一個text_ui.py文件,用來存放測試用例

    2024年02月05日
    瀏覽(17)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包