巧用属性选择器,简化puppeteer前端自动化测试代码开发

本文介绍如何使用Puppeteer在B端系统自动化测试中,通过属性选择器抽象操作,避免冗余代码,提高测试效率。示例展示了如何针对具有特定属性的表单元素进行操作,如输入、选择和提交,以及如何在不同页面复用通用测试脚本。
摘要由CSDN通过智能技术生成

关于使用puppeteer搭建自动化测试工程的方法,可以参考入门指南:使用Puppeteer进行前端自动化测试。本文意在分享编写测试代码时的一个简化技巧。

适用场景

适用于表单类操作较多、且操作模式较为统一的B端系统页面。比如进行增、删、改、查等简单交互。
antd表单实例
例如antd组件中的表单。如果在自动化测试中模仿表单操作,一般习惯使用id选择器或类选择器。例如:

    await page.waitForTimeout(1000);
    const Username = await page.waitForSelector("#Username");
    await Username.type("2023");
	const Password = await page.waitForSelector("#Password");
    await Password.type("2023");
    
    const submit = await page.waitForSelector(
      ".ant-form .ant-form-item .ant-btn-primary"
    ); //查询按钮
    submit.click();

每一个页面都要单独去找各个元素所在的层级位置、id与类名。如果多个页面功能操作重复性的部分很多,我们也不得不一遍遍重复书写类似代码,这个过程不仅是极为枯燥的,也给开发工作增加了许多负担。

改良:用属性选择器抽象出操作过程

既然很多B端的页面操作过程是一致的,只不过元素的id是不同的。那我们就可以选择抛弃独特的id选择器,替代成更加通用的属性选择器。通过在前端业务代码结构中增加具有特征的属性,来抽象出用户的行为、操作顺序,那么在自动化测试代码中就可以开发一套通用的测试代码,来适配多个不同的页面啦。

业务表单代码:
一个查询检索的表单:

<Form layout="inline" form={
   form}>
            <FormItem
                name='title'
                label='标题'
                test='queryForm-input'
            >
                <Input/>
            </FormItem>
            <FormItem
                name='type'
                label='类型'
                test='queryForm-select'
            >
                <Select
                >
                    {
   options}
                </Select>

            </FormItem>
            <FormItem
                name='startDate'
                label='开始日期'
                test='queryForm-datePicker'
            >
                <DatePicker
                    format="YYYY-MM-DD"
                />
            </FormItem>
            <Button test='queryForm-queryButton' onClick={
   handleSubmit}>
                    查询
            </Button>
</Form>

一个Modal弹窗的表单:


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值