sshxcute正式发布1.0版本

把sshxcute开源了,放在了Google Code上,第一个做的开源项目啊,不容易啊,里程碑式的一帖 ,纪念下吧。

English version guideline: http://code.google.com/p/sshxcute

中文使用指南:http://code.google.com/p/sshxcute/wiki/GuidelineOfChineseVersion

简介:

正如名字所示,SSHXCUTE是一个框架。它允许工程师利用Java代码通过SSH连接远程执行Linux/UNIX系统上的命令或者脚本,这种方式不管是针对软件测试还是系统部署,都简化了[……]

继续阅读

WAS profile重建失败的解决办法之一

问题描述:

重建一个新的WAS profile,我们先删除已经存在的。

#manageprofiles -deleteAll
 
#cd  ../profiles
 
#rm -rf AppSrv01
 
#cd ../bin
 
# /opt/IBM/WebSphere/A[......]<p class="read-more"><a href="http://neoremind.com/2010/09/cannot_recreate_was_profil/">继续阅读</a></p>

Session和Cookie的理解辨析与小试牛刀

Cookie机制采用的是在客户端保持状态的方案。cookie的作用就是为了解决HTTP协议无状态的缺陷所作的努力。

Session机制采用的是一种在客户端与服务器之间保持状态的解决方案。同时我们也看到,由于采用服务器端保持状态的方案在客户端也需要保存一个标识,所以session机制可能需要借助于cookie机制来达到保存标识的目的。

session是针对每一个用户的,变量的值保存在服务器上,用一个sessionID来区分是哪个用户session变量, 这个sessionID就是我们常说的JSESSIONID,这个值是通过用户的浏览器在访问的时候返回给服务器,当客户禁用cookie时,这个值[……]

继续阅读

HTMLParser HttpClient Firebug结合解析网页

题外话

已经很长时间没有写作了,原因颇多,世事变迁之快,迅雷不及掩耳,技术之路上仍需努力,闲话少说,开整。

背景

一直以来ITS Team都痛苦与build的下载工作,具体流程如下图所示。

1. 登录BuildVault网站。

2. 点击distribution进入二级页面。

3. 选择相应的产品下载。

4. 获取一个下载build的URL,要么下载到本地这么还得再传到server上dep[……]

继续阅读

拒绝labor 拥抱脚本~高效替换所有文件中字符串的Shell

使用场景: Linux或者Unix系统中,先查看下某个目录下所有文件列表:

tsadmin@tslnx10:~/com.ibm.rfidic.test.data/queries/set1.1/expected> ls
CVS
FVT_QG_EPCISCHG_0008_Expected_Response.xml
FVT_QG_EPCISCHG_0019_Expected_Response.xml
FVT_QG_EVENT_0001_Expected_Response.xml
FVT_QG_EVENT_0002_Expected_Response.xml
FVT_QG_E[......]<p class="read-more"><a href="http://neoremind.com/2010/08/replace_all_files_keyword_shell_script/">继续阅读</a></p>

设计模式学习总结-简单工厂方法模式

简单工厂模式是类的创建模式。

假定有工厂,具体产品和抽象产品这三个元素存在,简单工厂模式就是由工厂类根据传入的参量决定创建出哪一种产品类的实例。简单工厂模式涉及到工厂角色,抽象产品角色以及具体产品角色等三个角色:

工厂类(Creator)角色:担任这个角色的是工厂方法模式的核心,含有与应用紧密相关的商业逻辑。工厂类在客户端的直接调用下创建产品对象,它往往由一个具体Java类实现。
抽象产品(Product)角色:担任这个角色的类是由工厂方法模式所创建的对象的父类,或他们共同拥有的接口。抽象产品角色可以用一个接口或者抽象类实现。
具体产品(Concreate product)[……]

继续阅读

高可用性(HA)与集群(Cluster)之浅见

通俗来讲的HA应该属于狭义概念上的HA,它通常指代某种Active+Standby的Pair Service,最长见的当然就是数据库的主备结构。反正大家天天这么招呼,在狭义的HA层面上也能达成一定的共识,不过,HA概念本身其实简单背后蕴含着更多的玄机。

计算机系统的可用性(availability)是通过系统的可靠性(reliability)和可维护性(maintainability)来度量的。工程上通常用平均无故障时间(MTTF)来度量系统的可靠性,用平均维修时间(MTTR)来度量系统的可维护性。于是可用性被定义为:MTTF/(MTTF+MTTR)*100%

从更广义的角度来说, HA就[……]

继续阅读

JUnit使用经验总结

经验一、不要在测试用例的构造函数中做初始化,而是在setUp()中

经验二、不要假定测试用例中测试的执行次序

一个JUnit 的测试用例类中可以包含多个测试,每个测试其实就是一个method。在下面的例子中有两个不同的测试,尽管testDoThisFirst()在位置上先于testDoThisSecond(),但不能就此假定testDoThisFirst()会先执行。

public class SomeTestCase extends TestCase{
public SomeTestCase(String testName){
super(testName);
}
pu[......]<p class="read-more"><a href="http://neoremind.com/2010/07/junit_tip/">继续阅读</a></p>

RFT放慢脚本运行速度

执行RFT回归测试脚本的时候,如果担心鼠标刷刷刷点的太快,可以放慢脚步的运行速度,在你的脚本中加入以下全局声明,相当于在每个action后都sleep 2秒。

RationalTestScript.setOption(IOptionName.DELAY_BEFORE_GUI_ACTION, 2);

[……]

继续阅读

利用bat启动RFT脚本

@echo off
set jre_bin=&quot;C:Program FilesIBMSDP_RFTjdkjrebin&quot;
set ft_install_dir=&quot;C:Program FilesIBMSDP_RFTFunctionalTester[......]<p class="read-more"><a href="http://neoremind.com/2010/07/bat_launch_rft_test_scrip/">继续阅读</a></p>

Linux查看目录占用磁盘空间

组里遇到一个棘手的问题:某个Cognos虚拟机硬盘空间剩余0%,死活找不出什么可以删除的文件。df -h只能看整体大小,如果能找到相应目录下所有文件大小的信息就好了~

解决办法:

ls |xargs du -sh

输出:

35M     db2
35M     db2.tar
1.5G    ibm
9.9G    IBM
81M     IBMJava2-142

这样可以再cd到IBM目录看看什么东西可以删除。

提示:一般Java的应用程序在异常退出的时候都会生成core dump文件,其大小就等同于JVM所用内存大小,所以如果这些文件堆积起来的话总占用空间不可小视。[……]

继续阅读

设计模式学习总结-命令模式

1. 定义

把一个请求或者操作封装在命令对象中。命令模式允许系统使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。

2. 要点

1) Command模式的根本目的在于将“行为请求者”与“行为实现者”解耦,在面向对象语言中,常见的实现手段是“将行为抽象为对象”。
2) 具体命令角色可以被不同的请求者角色重用。

3) 通过使用Compmosite模式,可以将多个命令封装为一个“复合命令”。

4) 增加新的具体命令角色很容易,因为这无需改变已有的类。

3. 适用性

1) 需要抽象出待执行的动作,然后以参数的形式提供出来——类似于过程设计中[……]

继续阅读

几个常用的Web端小工具

Pencil Project: Sketching and Prototyping with Firefox

一个开源 GUI 原型设计工具。非常强大,非常好看,不仅可以导出图片格式还可以导出成文档,又一件美化PPT流程图的利器啊,强烈推荐!

Support Details

可以侦测到客户端浏览器的各种信息。包括浏览器类型,Flash版本,IP等等。还可以发送该信息到指定邮箱。

jsFiddle

在线 Web 编辑器,支持 JavaScript, MooTools, jQuery, Prototype, YUI, Glow[……]

继续阅读

SQL中使用WITH AS提高性能

1. Overview

The WITH query_name clause lets you assign a name to a subquery block. You can then reference the subquery block multiple places in the query by specifying the query name. Oracle Database optimizes the query by treating the query name as either an inline view or as a temporary table.[……]

继续阅读

回调函数的定义与应用

回调函数的起源还要从C++说起,让我们先来看看C++中是如何使用回调函数的。

回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数。

程序员B要让A调用自己的程序B中的一个方法,于是,他通过A中的接口回调自己B中的方法。

为什么要使用回调函数?

因为可以把调用者与被调用者分开。调用者不关心谁是被调用者,所有它需知道的,只是存在一个具有某种特定原型、某些限制条件(如返回值为int)的被调用函数。

举例

#include<stdio.h>
 
// 方法指针的格式为:[......]<p class="read-more"><a href="http://neoremind.com/2010/07/callback_/">继续阅读</a></p>