UI 自动化的一些实践

目录

前言:

背景

重要的事情说三遍:

目前的 case 流程

突破口


前言:

UI 自动化是指使用自动化工具和技术来模拟用户在界面上的交互操作,从而实现对 UI 进行自动化测试的过程。UI 自动化测试可以帮助我们快速、准确地发现界面上的问题和缺陷,从而提高测试的效率和质量。

背景

自动化 case 维护成本随着界面 UI 的变化越来越大,最后直接到放弃,怎样快速的维护 case 成为了突破口;
目前提供实现思路,后期会补上基于现有的 UI 自动化框架的实现;

重要的事情说三遍:

UI 自动化只做页面逻辑,不校验接口数据的正确性;(有意见来喷,互喷才能成长)
UI 自动化只做页面逻辑,不校验接口数据的正确性;(有意见来喷,互喷才能成长)
UI 自动化只做页面逻辑,不校验接口数据的正确性;(有意见来喷,互喷才能成长)

目前的 case 流程

起初为了自动化而自动化,后来 leader 认为业务质量高于一切而放弃,等有时间了再来补一发,然后就不了了之了;

1 自动化小组封装现有的开源框架;
2 按照业务流程书写 case 或者 增加 PO 模型书写 case;
3 跟着迭代的步伐修改页面对象和业务流程;
4 版本发布频繁,case 无法不足,直接放弃;

突破口

1 书写 PO 模型的时候其实我们已经知道该控件的所有属性,暂且定义如下:

protected ElementGetWay elementGetWay;          // 控件的获取方式
protected String value;                         // 获取方式使用的value值
protected int index = HAS_NO_LIST;              // 控件index值 default 999999 无list
protected String desc;                          // 控件信息描述
protected String text;                          // 控件text内容,操作为getText()时用来存储数据
protected OperateType operateType;              // 操作方式
protected ElementType elementType;              // 控件获取平台 :Native 或者 H5 或者 WEB
protected String childPageName;                 // 控件操作后到达的页面
protected String depend;                        // 同级页面依赖:该类中控件的属性名
protected OperateType need;                     // 滑动方向 查找元素或者其他必要的操作
protected int priority;                         // 同级页面操作优先级 ,例如:下单页面的地址栏添加等

2 定义注解,通过反射实例化各个控件:

@Retention(RUNTIME)
@Target({FIELD, TYPE})
public @interface WebFindBy {

    /**
     * 控件获取方式
     */
    ElementGetWay getElementWay() default ElementGetWay.APPIUM_ID;

    /**
     * 对应控件获取方式的值
     */
    String value() default "";

    /**
     * 控件text值
     */
    String text() default "";

    /**
     * 控件index值 default 999999.
     */
    int index() default ElementUIBean.HAS_NO_LIST;

    /**
     * 控件信息描述
     */
    String desc() default "";

    /**
     * 控件操作方式
     */
    OperateType operateType() default OperateType.SCROLL_PULL_UP;

    /**
     * 控件类型
     */
    ElementUIBean.ElementType elementType() default ElementUIBean.ElementType.NATIVE;

    /**
     * 同页面依赖
     */
    String depend() default "";

    /**
     * 该控件操作后到达的页面
     */
    String child() default "";

    /**
     * 设置滑动方向来查找元素
     */
    OperateType need() default OperateType.SCROLL_PULL_UP;

    /**
     * @return priority 优先级 数字与用例基本对等 n = p(n)
     */
    int priority() default 3;

3 根据控件中 child 与 页面对象中的 PARENTS 属性(父页面)自动生成执行路径

4 根据控件中的控件获取平台 与 控件操作方式 来执行对应的操作;

  作为一位过来人也是希望大家少走一些弯路

在这里我给大家分享一些自动化测试前进之路的必须品,希望能对你带来帮助。

(软件测试相关资料,自动化测试相关资料,技术问题答疑等等)

相信能使你更好的进步!

点击下方小卡片

【自动化测试交流】:574737577(备注ccc)icon-default.png?t=N6B9http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=2VazabGG7Sqvk2AuzTBN_pECo6OTREI2&authKey=SxljQFrgAzikdNwwCgn2BYRlzUxXip9Q95p1XA1de3kwke9XIvZc4rf5fGISvZxP&noverify=0&group_code=574737577 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值