Rootop 服务器运维与web架构

2014-01-21
发表者 Venus
暂无评论

watir+ruby

Ruby 是面向对象的编程语言,它追求的是“简便快捷的面向对象编程”。Ruby是解释型语言,因此不需编译即可快捷地编程。同时Ruby具有类似Perl的强大的文本处理功能,它可并不只是个玩具,您可以用它来进行实用的编程。此外,您还可以很方便地使用C语言来扩展Ruby的功能,因此可以把她当作各种库的前端来使用。

Watir( Web Application Testing in Ruby) 是一个优秀的开源工具,用于开发基于Web 应用的自动化测试程序。它使用Ruby 脚本语言,提供了轻量级的自动化测试程序框架和丰富的开发库,有效地加速了自动化测试程序开发。

Watir 的主要特性以及使用 Watir 开发自动化程序的优势:

Watir是一个轻量级的用于开发基于Web应用的自动化测试框架,它基于Ruby语言,提供了丰富的开发库,简化了自动化测试程序开发。下面我们总结了Watir的主要一些优良特性:

Watir 基于 Ruby 语言。 Ruby 是面向对象语言,功能强大,简单易用。程序解释执行不用编译;

Watir 支持多种操作系统平台,包括 Windows, Mac, Linux ;同时支持多种主流浏览器,如 IE, Firefox, Chrome

Watir 提供了丰富的开发库,封装了包括浏览器窗口 windows,button, link, dialog, image, table, div 等绝大多数 HTML 对象类型,方便测试人员快速构建自动化测试程序。

Ruby 提供了强大的交互命令工具 IRB(Interactive Ruby Shell), 在 Watir 程序开发中,我们使用 IRB 调试代码。别于传统调试方法,测试人员可以就单独一条命令或者一段程序进行调试,从而能够快速定位错误,节省调试时间。

Ruby 提供了 Test::Unit 单元测试框架,通过继承该框架,我们可以对测试用例,测试用例集 (Test Suites) 进行灵活方便地组合和调用,并且可利用断言 (Assertion) 来验证测试结果。

其他脚本语言如 Perl, Python, Shell 等也可以很好地集成到 Watir 程序中。

Watir 程序在运行时,允许测试人员在该测试机器上访问其他网页或者进行其他操作而不会影响到对象识别的结果。

2014-01-21
发表者 Venus
暂无评论

什么是“持续集成”Continuous Integration

      在敏捷开发中,有一个很重要的实践叫做持续集成。而什么是持续集成呢?简单来说,持续集成是频繁、持续的在多个团队成员的工作中进行集成,并且给与反馈。一个典型的持续集成周期包括以下几个步骤:
1.持续集成服务器不断从版本控制服务器上检查代码状态,看代码是否有更新。
2.如果发现代码有最新的提交,那么就从版本控制服务器下载最新的代码。
3.等代码完全更新以后,调用自动化编译脚本,进行代码编译。
4.运行所有的自动化测试。
5.进行代码分析。
6.产生可执行的软件,能够提供给测试人员进行测试。

        如果其中任何一个步骤失败,就表示该Build失败,持续集成服务器会给予相应的反馈。一般来说,持续集成服务器会有相应的管理界面,可以看到Build的状态以及相应的信息,如果Build失败,可以查看原因,是编译失败还是测试失败。或者在每次Build后,持续集成服务器发邮件通知,从邮件中可以看到最新Build的状态。当然,也可以自定义反馈方法,比如在ThoughtWorks中国,有个团队的持续集成反馈就是火山灯,黄色表示正在进行Build,绿色表示Build成功,而红色则表示Build失败,一旦发现灯变红了,所有人都不能提交代码,而应该尽快修复该Build。还有一个团队更有创意,用语音来进行反馈。如果Build成功,就会有语言提示说“Build XXXX成功”,如果失败,就会有提示“Build XXXX失败,是由XXX提交的”,被念到名字的成员就得停下来修复这个Build。

        持续集成实践的目的不是减少Build失败的次数,而是尽早发现问题,在最短的时间内解决问题,减少风险和浪费。如果想尝试持续集成,首先需要的是持续集成服务器,比如CruiseControl或者VSTS;然后需要把现有的Build自动化,比如写Ant脚本;最后就是在持续集成服务器上进行配置,比如配置版本控制,集成间隔时间,如何部署,如何反馈等。

  PS:

       敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。

摘自:http://www.cnblogs.com/blusehuang/archive/2008/01/20/continuous_integration.html

2014-01-17
发表者 Venus
暂无评论

web集群中session同步问题

早在2011年做过2台机器的负载均衡,多台服务器中,实现用户的会话保持,不得不考虑session同步的问题。在这里提供了5种方法供参考:

一、数据库:

1、拿出来单独一台机器做session数据库。或在现有数据库中创建表存放session(加重数据库负担)

2、同步session文件夹到另外其它服务器中(或共享,如NFS服务)

二、cookie:

1、将session信息写入到cookie中,存放于客户端。

这种方式优点是简单,无额外开销,缺点是如果客户端禁用cookie将无法正常使用,安全性也很低。cookie可以伪造。

三、memcache:

memcache是一个高性能的分布式的内存对象缓存系统,可以将session写入到memcache中。

优点是存放在内存,速度快,比cookie方式安全,缺点是容易产生内存碎片,内存溢出,单点故障。

可考虑做memcache高可用。

四、专业的负载均衡器 比如深信服应用交付系统。

五、中间件技术。如weblogic等

2014-01-16
发表者 Venus
暂无评论

wordpress更换域名

1、更改博客地址

  首先用phpmyadmin打开数据库,找到wp-options表,找到第一条记录也就是siteurl和第37条记录home,将地址改成更换后的域名即可。
这样就可以正常打开网站。

2、修改文章url及文章内链接为新域名

  在以前发表的文章中一定加了内链,比如图片,域名更换了,老的内链也就没有意义了。此时得要将文章内链的旧域名修改为新域名。
用phpmyadmin进入所在的数据库,执行以下语句就可以把文章内的所有内链旧域名批量改为新域名:

UPDATE wp_posts SET post_content = replace(post_content, ‘http://www.old.com’, ‘http://www.new.com’);