微信号:grzlwx

介绍:光荣之路官方资讯

一个简单完整的自动化示例(二)

2015-12-10 22:44 光荣之路

吴老的《selenium webdriver 实战宝典》出版了!

4.4 自动化检测发布结果

关于指定的版本的静态文件是否发布成功,最后还需要一道检测,才能实现 闭环。当然,根据不同的要求,检测的用例也会不同。一般情况下,如果前面的流程都比较规范,此处就不太需要对功能进行太多检测了,但是需要对发布结果进行检测:检测指定版本的js是否能够成功被公网访问。

一般人可能不太理解,之前不是已经完成发布了么,此处为何还要多此一举?经验告诉我们,一个 开环 的系统的结果往往是存在不可预知的,往往是不可信的。特别是在远程发布的时候,网络环境稳定性、服务器的硬件配额(磁盘容量已满)、web服务器配置(权限问题)都会成为发布失败的原因。只有形成 闭环 才会形成可靠的交付。

发布的目的不是执行发布的流程,而是最终能够让开发产出物能够提供正常的服务

关于 jQuery 是否发布成功,本文设计了两个测试用例:

  • 能够Http请求到正常的js源码

  • jQuery的头部信息里面支持跨域

手工的检测方式是在浏览器输入链接:

1

观看浏览器的显示结果。

显然:

  • 浏览器的内容框里面显示了正常的返回了js的内容

  • 浏览器的调试框里面也可以看到头部信息里面是支持跨域的

  • 当然此处还是使用了稍微高级的数据层面的检测方式,如果不了解http的原理,可能还会专门做一个测试页面,看能够正常加载到js文件。

这样太耗时,所以本文推荐自动化的方案。上面的手式的方式,其实本质上就是利用浏览器对指定的http链接发起请求,然后用眼睛来判断返回的数据结果,这一切都可以通过程序来实现。

做自动化的首要本领就是要会 透过现象看本质,即 透过界面看数据,以上两个用例的主要的技术原理:

  • 请求js资源,Http返回的状态码是200。当然如果要更精细化,可以对其返回内容做进一步严格的判断。

  • Http的请求头部数据里面的 access-control-allow-origin 字段的值为 * (星号通配符)

下面贴上一段python的 pyunit 框架下的自动化检测代码:


上面的代码是两个小的自动化测试用例,为了作为对比,特意 做了一个运行成功的例子(成功请求到文件)和一个运行失败的检测例子(要求文件支持跨域,其实jquery是应该支持跨域引用的)。

为了简单起见,在IDE下面运行此测试代码并查看结果:

检测服务器上面的静态库文件是否加载成功。 当然,正常的结果应该是这样全成功的状态:

如果检测通过,那么就证明是成功发布了。

5 总结

本文的目的是为了说明什么叫自动化及自动化的好处,前面所介绍的内容的范围并不局限于“测试自动化”,但是最后的落脚点还是要到 自动化测试 及现在高级的 测试 职责:持续集成

自动化测试 还有如下一些需要深入研究的地方:

  • 对不同的测试用例进行数据的抽象化,以达到自动化实现的目的

  • 这需要比较扎实的计算机的基础知识

  • 能够通过代码组织好成规模(比如几千几万)的自动化测试脚本

  • 这个就需要一定的软件工程基础和系统开发能力

  • 能够掌握和其它系统集成的能力以达到持续集成的全自动化软件生产过程

这些技能也不是此处简单的只言片语就能道尽的,本文只能作为一个引子来进行后续内容的预热吧。

持续集成 也是建立在前面所介绍的各个环节形成自动化之后,然后再使用一定的技术手段,将这一系列事件进行被扣,来触发下一事件,从而环环相扣,形成稳定的软件生产自动化 流水线。形成持续稳定的软件交付物。

至于 持续集成 的好处,可以使用一个制造业的例子来描述:

1913年,福特将 流水线 应用到汽车组装中,第一条流水线使每辆T型汽车的组装时间由原来的12小时28分钟缩短至10秒钟,生产效率提高了4488倍!

在现代软件工业领域也需要这样:先自动化,然后持续集成,才可以实现快速迭代,以产生巨大的生产力,符合现代人对软件工程的预期。希望相关从业人员一起努力吧,提升自己的知识结构的竞争力,也提升整体的行业的生产力。

<未完待续>

(作者:Harmo哈莫 来源:http://www.cnblogs.com/beer/p/5005344.html)


公益传播测试知识、技能与正能量!感谢作者!
分享测试生活,思考测试人生!欢迎投稿!
文章图片来自网络,如有侵权请见谅,请联系我们妥善处理。
735821166@qq.com

光荣之路
软件测试培训



官网:www.gloryroad.cn

微信公众号:gloryroadtrain

性能测试QQ群:415987441
测试招聘QQ群: 203715128
自动化3群QQ: 371211499

Python群:457561756


 
光荣之路 更多文章 今天晚上的 linux 公开课- Awk 编程 7月28日(今天)晚上的 linux 公开课- shell编程 8月4日(今天)晚上的 linux 公开课- shell编程 9月1日(本周一)晚8点半,光荣之路Web自动化系列基础课—javascript第二讲 推荐本好书《与机器赛跑》
猜您喜欢 Google I/O 2015大会爆点 “与中国同创”支持中国成为创新的第一现场 谷歌I/O大会|Cocos助力开发者分分钟实现“Daydream” 程序员技术练级攻略 重新使用Java的七个理由