我的UI自动化总结之失败用例跟踪

发表于:2013-3-29 11:09

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:雅婷Tracy    来源:51Testing软件测试网采编

  写过UI自动化的同学应该都碰到过这种情况,每天早晨查收邮件,看着一条条红红的failed,心里发凉“不会是功能挂了吧”,埋头看log,查找原因,发现很多情况下都是用例本身的原因,比如页面结构变动,导致xpath定位不到正确的位置,或者是功能优化导致用例逻辑变化,也可能是环境的问题等等,这些 原因只要我们修改用例就ok了,最要命的是找了半天也不知道用例为何失败,其实每一次用例失败都有原因,只是这些原因隐藏在小角落,往往被我们忽略,下面 我就列举下我遇到过的各种情况,希望对以后写UI自动化的同学有帮助。。。(以下情况都是基于Selenium框架的)

  1、text框中有默认值时,输入前最好先清空text框

  (1)用例失败情况综述

  添加子博客的时候,规定域名长度不能小于5个字符,在自动化用例中,添加域名为4个字符的子博客,添加成功,导致用例失败,发生概率:10%。

  (2)原因分析

  在未添加域名的情况下,博客地址默认是name.lofter.com,在光标focus到博客地址框中的时候,name才会消失。根据开发的分析,是因为可能刚好是focus函数没执行完,自动化用例已经输入了域名,导致博客添加成功,如下图:

  (3)解决方案:修改自动化代码:在输入域名前先让光标定位到博客地址框,

public static void createSubBlog(BrowserEmulator be, String blogname,
            String blogadr, String vercode, int result)
            throws InterruptedException {
        be.open(http://www.lofter.com/newblog);
        be.type(子博_新建_博客名称输入框, blogname);
        be.getBrowser().focus(子博_新建_博客地址输入框);
        be.type(子博_新建_博客地址输入框, blogadr);
        be.type(子博_新建_验证码输入框, vercode);
        be.click(子博_新建_开通博客);

        // 验证
        if (result == 1) {
            be.expectElementExistOrNot(true, String.format(顶栏_子博博客名, blogname),
                    10000);
        }
        if (result == 0) {
            be.click(顶栏_管理);
            be.expectElementExistOrNot(false,
                    String.format(顶栏_子博博客名, blogname), 5000);
        }
    }

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号