美文网首页TDDTDD(测试驱动开发)
[Web Testing]驗證 table 內的多筆資料

[Web Testing]驗證 table 內的多筆資料

作者: 就是91 | 来源:发表于2017-02-22 17:05 被阅读33次

當碰到查詢的功能,需要驗證查出的多筆結果是否符合預期時,在撰寫 web testing 時,往往很麻煩。本文針對確定查詢結果順序的情況,寫一段 sample code 給各位參考。

這篇 sample code 使用了 specflow, page object 與 FluentAutomation,不清楚這些東西的朋友,可以自行搜尋本 blog 的文章。

功能與頁面描述

有一個查詢頁面,可以查出符合條件的 ISBN 與書名的資訊。而自動測試,需要驗證如下圖所示:

查詢頁面與查詢結果

查詢結果的 HTML 如下所示:

<div>
    <table class="table">
        <tr>
            <th>
                ISBN
            </th>
            <th>
                Name
            </th>
        </tr>
        <tr>
            <td class="isbn">
                9789869094481
            </td>
            <td class="name">
                玩出好創意
            </td>
        </tr>
    </table>
</div>

ASP.NET View 的部分,如下所示:

    if (Model != null && Model.Books.Any())
    {
        <div>
            <table class="table">
                <tr>
                    <th>
                        @Html.DisplayNameFor(model => model.ISBN)
                    </th>
                    <th>
                        @Html.DisplayNameFor(model => model.Name)
                    </th>
                </tr>

                @foreach (var item in Model.Books)
                {
                    <tr>
                        <td class="isbn">
                            @Html.DisplayFor(modelItem => item.ISBN)
                        </td>
                        <td class="name">
                            @Html.DisplayFor(modelItem => item.Name)
                        </td>
                    </tr>
                }
            </table>
        </div>
    }

查詢的 Scenario

查詢書籍的 scenario

Step Definitions 如何使用 Page Object

step definitions使用page object

Page object 美妙之處就在於,叫它做事就好,而不用管它是怎麼做的。(某種程度跟使用 interface 類似)

Page Object 的內容

page object assertion 實作

CSS selector 使用 nth-child() 是重點

結論

在 web testing 做驗證時,其實是需要做些取捨的,因為驗證地越細,測試程式就越不穩定。只要達到驗證的目的,越輕量越好。例如幾種驗證方式:

  1. 從 UI 上取值,轉成物件跟 specflow 的 table 做 compare。
  2. 從 specflow 的 table 上取得資訊,做 UI 完整的驗證。
  3. 從 specflow 的 table 上取得資訊,做剛好的驗證。例如驗證筆數、驗證畫面上有出現關鍵字即可。類似 mock 的驗證,驗得越死越細,需求異動時壞掉的機率就越高。

相关文章

  • [Web Testing]驗證 table 內的多筆資料

    當碰到查詢的功能,需要驗證查出的多筆結果是否符合預期時,在撰寫 web testing 時,往往很麻煩。本文針對確...

  • [065]Ruby on rails筆記-Active Reco

    前言: 在創造資料庫後,往往我們要限制輸入資料的格式,以便於資料庫的管理,而在限制此格式時,我們會進行驗證的動作,...

  • PIL庫(中文驗證碼生成)

    公司要求做一個途牛網的驗證碼識別,需要用深度學習,為了生成對應網站驗證碼的訓練集,我網上搜了一些資料學習了一下,過...

  • 感性審美

    最近讀,因其內大量註釋與文獻參考,導致我不得不翻查大量資料,以保證儘量接近理解作者的表達感受。 從黑...

  • 耶證與精神健康

    耶證與精神健康 以下資料引述自: http://www.jwfacts.cOM/了望塔/精神-Ises.php 蒙...

  • 基金單筆投資 v.s. 定期定額投資

    文 | 陳光遠 授權發佈來源:旺角財經筆記 投資基金有二種方式:** 「單筆投資」和「定期定額」** 單筆投資 是...

  • 委外專案趨勢-文字雲

    讓我們來瞭解一下目前委外專案的趨勢及想法吧!資料來源:OO委外專案網資料筆數:804 委外專案趨勢-文字雲 後續再...

  • 《雲泥》斷更聲明

    提筆寫這個小說是為了證明給幾個體制內文人看,我是有能力操作小說這個體裁的。已經寫出的兩個小節應該可以證明了...

  • Firebase 查詢資料

    Firebase的資料圖 連接資料庫 取全部數據 Output 過濾 參考資料http://chikuo.tw/a...

  • 貨運聯繫單轉批價流程

    國內業務編輯貨運聯繫單後,確認內容無誤後,可以點擊 [傳送總公司] 系統將資料傳送至總公司進行批價流程。 國內倉庫...

网友评论

    本文标题:[Web Testing]驗證 table 內的多筆資料

    本文链接:https://www.haomeiwen.com/subject/jpymwttx.html