51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1495|回复: 0
打印 上一主题 下一主题

浅谈UI自动化测试

[复制链接]
  • TA的每日心情
    擦汗
    2022-8-30 09:02
  • 签到天数: 2 天

    连续签到: 2 天

    [LV.1]测试小兵

    跳转到指定楼层
    1#
    发表于 2018-6-13 15:37:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    最近一直在学习python,正好部门技术结构调整,就开始了点工向UI自动化测试的转变,我要说瞌睡
    来了就掉枕头么?

    不过还好,可以将python的学习成果在自动化测试中实践。。。



    1、about自动化测试

    定义:把人为驱动的测试转化为机器执行的一种过程,重点在于持续集成这个概念;

    优势:节约人力和时间成本;

    测试金字塔:



    如上图所示,敏捷大师Mike Cohn提出该概念,然后由Martin Fowler大师在此基础上提出了测试分层概
    念,以区别于传统的自动化测试。



    2、自动化测试分层

    单元自动化测试(数据处理层):指对软件中最小的可测试单元进行检查和验证,一般需要借助单元
    测试框架,如java的Junit、TestNG,python的unittest,常见的手段是code review等;

    接口自动化测试(业务逻辑层):主要检查验证模块间的调用返回以及不同系统、服务间的数据交换,
    常见的接口测试工具有postman、jmeter、loadrunner等;

    UI自动化测试(GUI界面层):UI层是用户使用产品的入口,所有功能通过这一层提供给用户,测试
    工作大多集中在这一层,常见的测试工具有UFT、Robot Framework、Selenium、Appium等;

    性价比:按照测试金字塔模型以及投入/产出比,越向下,回报率越高;

    Google的自动化分层投入占比:

    小测试(Unit):占比70%;

    中测试(Service):占比20%;

    大测试(UI):占比10%;

    自动化测试面临的挑战:面临的最大挑战就是变化,因为变化会导致测试用例运行失败,所以需要
    对自动化脚本不断debug,如何控制成本、降低成本是对自动化测试工具以及人员能力的挑战。



    3、什么样的项目适合自动化测试





    如上图所示,真正工作中无法全部满足以上条件,所以需要作出权衡,一般来说,只需要满足以下几
    点,就可以对项目开展自动化测试(图中红色框标注的选项):

    ①需求稳定,不会频繁变更

    自动化测试最大的挑战就是需求的变化,而自动化脚本本身就需要修改、扩展、debug,去适应新的
    功能,如果投入产出比太低,那么自动化测试也失去了其价值和意义;

    折中的做法是选择相对稳定的模块和功能进行自动化测试,变动较大、需求变更较频繁的部分用手
    工测试;

    ②多平台运行,组合遍历型、大量的重复任务

    测试数据、测试用例、自动化脚本的重用性和移植性较强,降低成本,提高效率和价值;

    ③软件维护周期长,有生命力

    自动化测试的需求稳定性要求、自动化框架的设计、脚本开发与调试均需要时间,这其实也是一
    个软件开发过程,如果项目周期较短,没有足够的时间去支持这一过程,那自动化测试也就不需
    要了;

    ④被测系统开发较为规范,可测试性强

    主要出于这几点考虑:被测试系统的架构差异、测试技术和工具的适应性、测试人员的能力能否
    设计开发出适应差异的自动化测试框架;



    4、常见的自动化测试工具简介

    UFT(Unified Functional Testing)

    即原来的QTP(Quick Test Professional Software)与ST(Service Test)合并而来,由HP公司开
    发,是一个企业级的商业自动化测试工具,提供了强大易用的录制回放功能,

    同时兼容对象识别模式与图像识别模式,支持B/S和C/S两种架构的软件测试;

    Robot Framework

    一款基于python语言编写的自动化测试框架工具,具备良好的扩展性,支持关键字驱动,支持
    多种类型的客户端和接口,可进行分布式测试;

    Selenium

    应用于web的自动化测试工具,支持多平台、多浏览器、多语言来实现自动化,优点如下:

    ①开源、免费;

    ②多浏览器支持:chrome、Firefox、IE、Edge等;

    ③多平台支持:Linux、Windows、MAC;

    ④多语言支持:java、python、Ruby、C#、JavaScript、C++;

    ⑤对web界面有良好的支持;

    ⑥简单(API简单)、灵活(开发语言驱动);

    ⑦支持分布式测试用例执行;



    5、做UI自动化测试,需要什么技能

    ①前端相关技术
    HTML、XML、JavaScript、TCP/IP协议等

    ②一门编程语言

    就像前面说的,selenium支持多种语言,根据个人情况以及项目的开发语言酌情选择;

    ③合适的工具选型

    比如selenium,比如UTF等;

    ④需求分析

    项目类型,特质,生命周期,是否适合开展自动化测试等;

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏1
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-8 06:10 , Processed in 0.063277 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表