前言
自動化測試里面參數化思想是非常重要的,同一類型的測試,只需維護不同的數據就可以了。
對每組測試數據自動生成對應的測試用例,並且每個測試用例的結果互不影響,不能因為第一個失敗了,后面的用例就不執行了。
自動生成用例
可以使用JavaScript動態生成測試,以下是官方文檔給的案例
describe('if your app uses jQuery', () => {
['mouseover', 'mouseout', 'mouseenter', 'mouseleave'].forEach((event) => {
it('triggers event: ' + event, () => {
// if your app uses jQuery, then we can trigger a jQuery
// event that causes the event callback to fire
cy
.get('#with-jquery').invoke('trigger', event)
.get('#messages').should('contain', 'the event ' + event + 'was fired')
})
})
})
這段代碼會自動生成4個用例
> if your app uses jQuery
> triggers event: 'mouseover'
> triggers event: 'mouseout'
> triggers event: 'mouseenter'
> triggers event: 'mousele
測試案例
以百度搜索輸入框為案例,分別輸入 英文,中文,數字三種情況針對輸入框的測試結果
/**
* Created by dell on 2020/5/13.
* 作者:上海-悠悠 QQ交流群:939110556
*/
describe('參數化案例,輸入不同的值', function() {
// 定義測試數據
var testdatas = ["yoyo", "上海-悠悠", "123456"]
// 前置-打開瀏覽器
before(() => {
cy.visit('https://www.baidu.com')
})
// 參數化
testdatas.forEach((event) => {
it("百度輸入框功能", function () {
cy.get('#kw').type(event)
.should('have.value', event)
.clear()
.should('have.value', '')
})
})
})
QQ交流群:939110556