• 自动化测试


    1. 什么是自动化测试? 

      自动化测试,顾名思义,自动完成测试工作。通过一些自动化测试工具或自己造轮子实现模拟之前人工点点/写写的工作并验证其结果完成整个测试过程,这样的测试过程,便是自动化测试。自动化测试,看上去很美,感觉好像是第一次工业革命,它开创了以机器代替手工劳动的时代,实则不然.因为每一个自动化测试的case都是从手工测试做起的,如果没有手工测试的基础,是没法进行自动化测试。

    2. 为什么要进行自动化测试
      为什么进行自动化测试,答案要从自动测试的收益和人肉测试的成本说起:
       a. 自动化测试节约成本(根据项目)
             毕竟自动化测试确实解放了一批人力(人力成本才是IT公司最大的成本),可以让机器没日没夜的执行一些重复劳动.
      
       b.有些测试项目手工很难实现(手工成本较高)
             比如12306的压力测试、负载测试,同时找那么多人去测试不现实可以通过机器去模拟.
      c.项目质量流程需要
      比如版本管理需要build verify,以保证check in的code不会影响版本库。类似于smoke test
    3. 自动化测试的优缺点
      优点
        避免测试人员因重复劳动产生厌倦
         提高测试效率
         保证每次测试地一致性和可重复性
         更好的利用无人值守时间
         进行一些手工无法进行的测试
      维护成本相对比较高 缺点 系统开发时间不一定能缩短 没有手工测试发现缺陷多
      UI layout issue 不容易发现
    4. 什么样的项目适合做自动化测试(dev手一抖,auto忙一宿)
    5. 有以下几个特点的项目比较适合自动化测试:
      1. 项目变动少
      2. 周期长
      3. 项目资源足够(自动化不是一个人完成的,需要一帮人长期维护)

      举例说明:
      互联网项目,一周内要上线,你不上线别人上线人家就不用你的,项目周期短,变动快,你自动化还没做好,项目说不定就下线了。比如某宝双12活动相关项目,一周之内就下线了。
      适合做自动化测试的项目,比如某宝客户端,每个release,大部分功能都不变,并且3-5年内项目不会下线,这个就比较适合自动化.
    6. 什么样的人适合做自动化测试?
      这个问题是写给想要做自动化测试的人,或许你以为软件测试的门槛很低,低到任何人都可以做,随便点点就可以了,这个行业太low了,所以你想做自动化测试,提升自己的逼格,我想说手工测试并不low,如果让一个什么都不懂,一点业务基础都没有的人去做测试,能测出来问题吗?不要忽略你的业务知识储备.
      你的业务知识储备的积累能让你成为不可替代的行业专家,而做自动化的码农会因为一个时代的更迭被小鲜肉替代。
      
      扯了这么多,究竟什么什么样的人能做自动化测试?
      我的理解分一下几点:
       a. 拥有代码能力
          掌握一门开发语言,java、Python、ruby、c#
       b. 熟悉被测系统
        比如你是web测试,你就得懂js、css、html、xpath
        你是移动端测试,你就得具备Android 开发基础和iOS开发基础,会debug app
        你是 C/S测试你就要很熟悉TCP、IP协议
       c. 掌握一套自动化测试框架(工具)
          比如 selenium/appium 
                  nunit/testng
                 robot framework/cucumber
       
       d. 善于学习,达到知其然知其所以然
          IT行业变化太快,每隔一段时间就会出现一些新兴的东西,也会出现原来很火的东西逐渐没落,谁也无法预测。
          曾经诺基亚还是手机霸主,靠塞班一统天下,然而不思进取,落得个卖身求生存.
          曾经qtp很火,曾经selenium也很火,现在appium也很火
          软件行业从桌面软件到web端,又从web端迁移到移动端,谁也不知道下一个是什么。而我们作为软件行业的从业者,不能因为那些很火的东西不火了而让自己没落,一个人最为核     心的能力就是学习能力,如果你善于学习,你就不必担心这些变迁,因为你可以毫无压力的迁移,selenium的原理你掌握了,学习appium简直小菜一碟,因为appium使用的是
      selenium WebDriver protocol .如果你能做到知其然知其所以然,你也可以造轮子,改造appium,毕竟现在很多功能需要完善。 如果你没有达到以上的几点,建议你还是做手工测试吧。
    7. 如果你有代码基础,想要从事自动化测试怎么去学习?
      很多初学者很纠结,学qtp还是学selenium
      我的建议是学selenium,开源的,免费的,你可以下载源码研究,去了解其原理,再者现在selenium的资料不要太多,随便搜搜一大堆,学起来比较轻松。
      不建议学selenium IDE录制,当然你可以通过录制一些然后转换为相应的脚本去学习,等你学好了selenium, 再去学appium你会有一种天然的似曾相识。为什么不建议学QTP/UFT?因为收费/臃肿/现在做桌面软件测试的工作已经不太多了。
      关于买书,不建议买书,很多书已经过时了,并且质量渣渣,你买了那些书中的code已经不能用了,如果你真的想学,就去官网找example,去相应的社区和群交流,或者直接看API/源码

     总结: 

            新人学习自动化测试要: 掌握一门门开发语言

    •  掌握一些基础的知识
    •  少买书,多看测试框架的document,多去社区交流
    •  不断学习,提升自己发现问题,解决问题的能力(不做伸手党,多动手)

    9种--自动化测试框架:

    https://www.cnblogs.com/dhcn/p/11128275.html

    https://www.cnblogs.com/yuanchunli/articles/4431297.html

    随着计算机网络应用的日益复杂,在Internet上的流量也变得日益拥挤,尤其伴随着宽带应用的逐渐普及,对网络和服务器性能的要求也越来越高,目前针对不同的应用服务类型,有不同的优化解决方案,其中服务器集群技术是切实可行的方法之一。
            负载平衡集群(Load Balance)和高可用集群(High Availability)是当前应用范围最广的两种服务器集群技术,尤其是基于Linux技术实现的上述两种集群方案,具有成本低、效率高、适用性好、便于优化的特点。不仅可以解决网络访问负载过重和突发请求并快速转移的问题,还可以大幅度提高服务器的可靠性,是当前企业、数据中心、网站的首选解决方案。
            因此集群测试的作用是针对当前网络的主要应用,对集群系统进行Web、Mail、Ftp、StreamMedia等应用性能测试和综合优化试验,为集群系统开发、制造、销售企业提供第一手的性能技术资料,为开发企业节省大量的开发费用和测试费用,为系统集成企业提供选型的依据。

    今天分享一个自动化UI测试工具airtest——一款网易出品的基于图像识别面向游UI测试的工具,也支持原生Android App基于元素识别的UI自动化测试。主要包含了三部分:Airtest IDE、Airtest(用截图写脚本)和 Poco(用界面UI元素来写脚本)。

    来自google的评价:

    Airtest 是安卓游戏开发最强大、最全面的自动测试方案之一。
    它具备以下几个优势:
    1.如果你是个小白,不想进行深度开发只想用作UI自动化测试,那么你完全可以用AirtestIDE这款IDE通过操作鼠标来生成并录制脚本,一键回放
    2.支持在 Windows 和 macOS 上运行。基于图像识别的 Airtest 框架,适用于 Android 和 Windows 上的游戏,此外也支持Android native apps、Windows applications、iOS Support、Selenium Plugin
    3.自动生成详细的HTML测试报告,附带了每个操作步骤的截图,方便迅速定位失败的测试点
    4.提供了一种快速进行兼容性测试的方案,利用手机集群进行大规模自动化测试。
    5.支持图像识别,可将图片元素作为参数进行校验操作
    6.支持二次开发,只需要下载airtest的python第三方依赖库
    多说无益,我们开始尝试使用Airtest进行Android APP测试
    环境准备
    1.最好使用python2.7以上,建议使用虚拟Pythonvirtualenv环境部署,隔离环境
    如果想要利用Airtest的API拓展更多的高级功能,请安装如下库
    Airtest

    airtest
    Poco

    poco
    2.如果测试Android app,需要准备adb环境,其依靠依靠ADB与Android设备进行通信
    3.下载airtestIDE. 请在官网下载合适你的IDE版本:http://airtest.netease.com/changelog.html
    开始使用
    1.设备连接
    1.1一切准备妥当后,开始打开AirtestIDE进行使用,图中所示分别是连接Android、Windows application、ios

    使用 Appium 进行多设备的集群分布式 UI 自动化测试

    https://blog.csdn.net/wanglha/article/details/46876723

  • 相关阅读:
    每日英语:AntiJapan Protests Flare in China
    opencv CvMat矩阵学习
    warning C4018有符号无符号不匹配
    每日英语:Relationship Repair: 10 Tips for Thinking Like a Therapist
    结构体数组定义和引用
    每日英语:China's Conflicted Consumers
    一个托盘程序, 简化notifyicon的使用.
    nunit notes from TDD in .net
    一款能拖拉的winform树形控件
    vss 2005 internet visit
  • 原文地址:https://www.cnblogs.com/klb561/p/11369611.html
Copyright © 2020-2023  润新知