自動化測試分為三部分,測試數據、執行代碼、測試結果。將三者完全剝離開,而不要將測試數據與測試執行步驟混在一起,這樣的測試用例才能增加可執行性和靈活性。
測試代碼又分為兩種,一種是功能的增刪查改類代碼,一種是流程代碼。我們編寫ui自動化代碼的原則是:所有的UI執行步驟只做一遍,剩下的都通過調用接口方式來實現。
使用cypress實現一個項目的自動化測試:
一、在cypress.json配置全局信息
{
"baseUrl":"http:// IP:port",
"viewportHeight":1024,
"viewportWidth":1280
}
在integration中新建spec.js文件,編寫具體的腳本。
describe('測試用例1',()=>{
it('01 服務中心',()=>{
cy.visit('/') //跳轉到配置好的路徑
})
})
二、創建前置用例
我們每一次執行用例時,都需要先登錄到系統,再進入到需要測試的模塊。測試完成后,清理掉測試數據,防止測試數據污染第二次的測試用例運行。
所以,登錄到系統就是每一個測試用例的前置條件。那么我們將他提取出來,放在測試用例之前,在每次執行時使用。cypress有一個beforeEach、afterEach來放置這些公共用例。
describe('測試用例1',()=>{
beforeEach('01 登錄',()=>{
cy.visit('/') //跳轉到配置好的路徑
})
it('測試中心',()=>{
測試主體1
})
it('測試中心',()=>{
測試主體2
})
})
三、封裝接口來代替需要重復執行的內容
在執行測試時,用戶信息是執行很多功能模塊的前置條件,那么添加用戶信息的方法將在很多個功能模塊中使用。這時,可以將添加用戶信息封裝為方法,
在其他模塊使用時,只需要調用自定義的方法即可。在cypress的support文件中,新建js 文件,封裝函數方法,support文件下的indext.js文件引入封裝好的自定義方法。
support/informatin.js中
Cypress.Commands.add('add_information',()=>{
cypress.request({
url:
method:
body:{
name:'xingn'
age:23
}
})
})
support/indext.js中:
import ‘./informatin’
