Testcafe之自动化测试框架

Posted Fenny_Wang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Testcafe之自动化测试框架相关的知识,希望对你有一定的参考价值。

 

测试框架结构如下:

----*dev          //存放各环境地址及变量
-------**dev.js       //测试环境
-------**pre.js         //预发
-------**publish.js     //线上
-------**index.js      //用户快速切换环境
----util         //存放公共处理方法
-------**testUtil.js
----fixture         //存放截图信息
----pages          //存放各页面元素
-------**test.js
----tests         //存放case
-------**pageTest.js

index.js 

//引入
import dev from './dev'
import pre from './pre'
import publish from './publish'

const config = 
    dev,
    pre,
    publish


export default config.dev  //设置测试环境

dev.js

//定义变量,用于断言
module.exports = 
    name: 'Fenny',
    shopTel: '13675832423',
    itemNum: 2,

;

 page.js

//引入testcafe
import 
    Selector
 from 'testcafe';

export default class Page 
    constructor() 
        //元素路径
        this.shopImgDiv = Selector('.panel-row .shop-info .info .cover .c-img.img'); //店铺logo
        this.shopNameDiv = Selector('.shop-info .info .name'); //店铺名称
  

testUtil.js

import MenuPage from "../pages/menuPage";

const menuPage = new MenuPage()

export default class testUtil
    async add(t) 
        const menuSection = menuPage.menuListDiv.find(`.menu-section`)
        const menuSectionCount = await menuSection.count
        var menuKindNameArray = []
        await t.expect(menuSectionCount > 0).ok()
        ...
        ...
    

引入及引用testUtil.js

import TestUtil from "../helper/testUtil"; //引入
const testUtil= new TestUtil();//定义


 await testUtil.add(t)  //调用


pageTest.js

import config from '../env/index';
import Page from '../pages/page';


const page = new Page();
const time = 3000

fixture(`XXX页`)
    .page(config.name)

test(`购物车校验`, async t => 
 await t.wait(time)
    //选择人数
    var peoplePageFlag = await page.peoplePageDiv.exists
    if (peoplePageFlag) 
        await t
            .click(page.peopleDiv.nth(people))
            .wait(time)
            .click(page.startBnt)
            .wait(time)
    
    await t
        .expect(page.cartBnt.exists).ok()
        .click(page.cartBnt)
        .wait(time)
   ...
   ...         

)

 

以上是关于Testcafe之自动化测试框架的主要内容,如果未能解决你的问题,请参考以下文章

Testcafe之Jenkins持续集成

能否在 HP ALM 中跟踪 TestCafe 结果?

Testcafe之环境安装与使用

接口测试自动化测试,我推荐使用Mocha

TestCafe:在多个测试中使用相同的选择器会返回旧的、不正确的数据

TestCafe“动态”测试用例