行文前,安利下文章:《图形界面操作系统发展史——计算机界面发展历史回顾》、《再谈MV*(MVVM MVP MVC)模式的设计原理—封装与解耦》
1973年4月,Xerox PARC (施乐公司帕洛阿尔托研究中心)研发出了第一台使用Alto操作系统的个人电脑,其中Alto是第一个把计算机所有元素结合到一起的图形界面操作系统。Xerox PARC还开发了一种名为Smalltalk的程序语言和环境,它拥有自己的GUI环境(包括了弹出菜单、视窗、图标)。
《乔布斯传》里,Jobs就是看到施乐开发中的实验性GUI以后,回去马上开始搞,还从施乐挖了一波人。然后微软有在苹果公开的东西上面模仿。接着就是一部波澜壮阔的GUI发展史。
从CS架构到BS架构。互联网发展如火如荼,推荐看下《浏览器史话中chrome霸主地位的奠定与国产浏览器的割据混战》,本人13年从Java入坑H5,但是前端的UI测试,除了前端工程师的 mocha karma jasmine 门后,就是给测试人员点点的感觉。前端UI如何自动化测试呢?
自动化测试:把人为驱动的测试转化为机器执行的一种过程,重点在于持续集成这个概念;
selenium 官网给出的测试类型有:
测试分类,我的印象是:单元测试(Unit Testing)、集成测试(Integration Testing)、端到端测试(E2E Testing)
负载测试与压力测试的区别:压力测试,就是高负载的情况下进行的,目的不是为了获取性能指标,而是想要了解系统是否稳定。这时候服务器的指标一般不超过90%。压力测试通过长时间的运行较性能测试更能容易发现内存泄露的问题。负载测试是个方法,性能测试是一个过程。
单元测试(unit testing):是指对软件中的最小可测试单元进行检查和验证。
单元的含义:单元就是人为规定的最小的被测功能模块。单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。
单元自动化测试一般需要借助单元测试框架,如java的Junit、TestNG,python的unittest,常见的手段是code review等;
断言库提供了很多语义化的方法来对值做各种各样的判断。
前端集成管理工具
接口测试:接口测试是对系统或组件之间的接口进行测试,主要是校验数据的交换,传递和控制管理过程,以及相互逻辑依赖关系。其中接口协议分为HTTP,WebService,Dubbo,Thrift,Socket等类型,测试类型又主要分为功能测试,性能测试,稳定性测试,安全性测试等。
主要检查验证模块间的调用返回以及不同系统、服务间的数据交换,常见的接口测试工具有postman、jmeter、loadrunner等;
这里我是强烈推荐Rap,一款开源免费的接口自动化、MOCK数据自动生成、自动化测试,企业级Web接口管理工具(阿里妈妈MUX团队出品)。RAP通过GUI工具帮助WEB工程师更高效的管理接口文档,同时通过分析接口结构自动生成Mock数据、校验真实接口的正确性,使接口文档成为开发流程中的强依赖。有了结构化的API数据,可避免更多重复劳动。
安利下自己的文章:《前后端分离API设计指南 》
接口自动化测试收益大:因为容易实现,维护成本低,有着更高的投入产出比,是每个公司开展自动化测试的首选。
UI层是用户使用产品的入口,所有功能通过这一层提供给用户,测试工作大多集中在这一层,常见的测试工具有UFT、Robot Framework、Selenium、Appium等;
性价比:按照测试金字塔模型以及投入/产出比,越向下,回报率越高;
Google的自动化分层投入占比:
自动化测试面临的挑战:面临的最大挑战就是变化,因为变化会导致测试用例运行失败,所以需要对自动化脚本不断debug,如何控制成本、降低成本是对自动化测试工具以及人员能力的挑战。
像那种做短平快而收钱的项目,自动化测试完全是扯蛋。
下篇介绍selenium:web自动化测试(2):选择selenium优势?与PhantomJS/QTP/Monkey对比
同行相关文章推荐:
前端自动化测试 https://blog.csdn.net/webyouxuan/article/details/100668081
大前端的自动化工厂(5)—— 基于Karma+Mocha+Chai的单元测试和接口测试 https://blog.51cto.com/13869008/2175983
转载本站文章《web自动化测试(1):再谈UI发展史与UI、功能自动化测试》,
请注明出处:https://www.zhoulujun.cn/html/Operation/test/2017_0517_8310.html
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。