发布新日志

  • Junit+verify

    2010-01-27 15:46:20

    想使用selenium RC做浏览器兼容性测试,使用了eclipse+junit+ant作为测试平台.
    在selenium中同时支持assert和verify两种断言模式.
    如果使用assert,当遇到错误时,test case不会再继续被执行下去; 而如果使用verify,当遇到错误时,test case仍会继续运行,直到完成.
    但在junit中创建测试代码时发现,junit不识别verify方法.
    从网上搜索了N多次,都没有找到彻底的解决方法,后来咨询了单位一个做开发人员,这个问题总得有眉目了.
    1. 首先不使用junit中的testcase类,而是使用com.thoughtworks.selenium.SeleneseTestCase.
    import com.thoughtworks.selenium.*;
    2.使用上述类就可以使用verify方法了,需要注意一点是:
    This class adds a number of "verify" commands, which are like "assert" commands, but they don't stop the test when they fail. Instead, verification errors are all thrown at once during tearDown.
    所以需要在teardown方法中,加后check verification的方法

    public void tearDown() throws Exception {
            selenium.stop();
            checkForVerificationErrors();
    }

    注意:        checkForVerificationErrors();和      selenium.stop();的位置不要反了啊. 如果反了,当遇到verificationerror的情况,这个测试就不能关闭不了.
    3.teardown()方法,使用junit默认定义teardown方法是如下
    protected void tearDown() throws Exception {
            selenium.stop();
            checkForVerificationErrors();
    }

    但junit总是报一个错误:
    Cannot reduce the visibility of the inherited method from SeleneseTestCase  
    原因是:
    因为接口定义的方法默认是public的,意思就是你没有任何访问修饰符的情况下,系统给接口的方法加上了一个public的访问修饰符。你Test实现了接口,并且实现了接口定义的方法,于是方法的访问修饰符只能比接口的访问修饰符高,但是类的默认访问修饰符是freidnly,降低了访问级别,所以会报错. 所以你Test实现的方法前面加上public就对了(具体不知道什么意思,咨询了一个开发人员后说的,哈哈,本人不懂代码哦.)

    后来将teardown()方法改成如下后,问题解决:
    public void tearDown() throws Exception {
            selenium.stop();
            checkForVerificationErrors();
    }




  • Selenium Grid + Selenium RC

    2010-01-15 13:52:32

    Reference URL:
    http://stackoverflow.com/questions/1944209/setup-for-ie6-and-multiple-browsers-in-selenium-grid
    http://selenium-grid.seleniumhq.org/faq.html

    Body:

    1. Installation:

    http://selenium-grid.seleniumhq.org/step_by_step_installation_instructions_for_windows.html

    2.Run the demo

    http://selenium-grid.seleniumhq.org/run_the_demo.html

    3.Running the Tests in Parallel on Multiple Machines

    Notes:
    • 在所有的机器(比如GRID机,RC机)上,都必须要安装ANT和SELENIUM GRID
    • 必须在GRID机上先启动 ant-hub,然后再在其它的机器上启动RC,这样在localhost:4444/console中,你才能看到available remote control的信息.
    • 如果在某台机器上想用某种浏览器(e.g.safari)进行测试,那在在这台机器上,必须将支持此浏览器的RC启动起来,格式如下:ant -Dport=5556 -Dhost=192.168.1.4 -DhubURL=http://192.168.1.70:4444 -Denvironment="Safari on Windows" launch-remote-control

    4.Running the Demo Using a Different Browser

    In the demo, firefox is the default browser, if you want to run the demo with the Safari web browser, you need to follow the below steps:
    • ant launch-hub
    • Launch a remote control(in the other machine or in the same machine) declaring that it provides the Safari environment: ant -Dport= -Dhost= -DhubURL= -Denvironment="*safari" launch-remote-control
    • Launch the other remote controls the same way:
    • ant -Denvironment="*safari" -Dport=5556 launch-remote-control
      ant -Denvironment="*safari" -Dport=5557 launch-remote-control
    • Launch the demo overriding the browser system property:
      • ant -Dbrowser="*safari" run-demo-in-parallel




  • Eclipse+Junit Test Suite Error --java.lang.Exception: No runnable methods

    2010-01-15 09:30:12

    使用Eclipse+(Junit4.x+Junit3.x 2个单位测试插件)做回归测试, 单个执行TESTCASE的时候都是可以成功的,但是将TESTCASE放在TESTSUITE中执行时,提示
    java.lang.Exception: No runnable methods
        at org.junit.internal.runners.TestClassMethodsRunner.testAborted(TestClassMethodsRunner.java:42)
        at org.junit.internal.runners.TestClassMethodsRunner.run(TestClassMethodsRunner.java:33)
        at org.junit.internal.runners.TestClassRunner$1.runUnprotected(TestClassRunner.java:42)
        at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
        at org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java:52)
        at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:38)
        at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)

    以下是测试套件代码

    package Testsuite;

    import junit.framework.Test;
    import junit.framework.TestSuite;

    public class AllTests {

        public static Test suite() {
            TestSuite suite = new TestSuite("Test for Testsuite");
            //$JUnit-BEGIN$
            suite.addTestSuite(GoogleTest2.class);
            suite.addTestSuite(GoogleTest1.class);
            suite.addTestSuite(GoogleTest.class);
            //$JUnit-END$
            return suite;
        }

    }

    在网上查了一下,原因是因为我使用了Junit4.x进行单元测试,if you use the JUnit 4.4 core runner to execute a class, you must have "@Test" method in the class.

    有两种方法可以解决这个问题:

    (1)比较简单的方法: 使用Junit3.x, 右击TESTSUITE CLASS,选择RunAs-Run,在弹出的窗口中,Testrunner选择为Junit3,默认是Junit4.(本人才疏学浅,实在不是太懂JUNIT里面的道道,就采用了第一种方法)
    (2)修改TESTSUITE和TESTCASE测试代码,使其包含 the @Test annotation,修改后的代码
    import org.junit.runner.RunWith;
    import org.junit.runners.Suite;
    import org.junit.runners.Suite.SuiteClasses;


    @RunWith(value=Suite.class)
    @SuiteClasses(value={TestCase.class})
    public class AllTests {

    }

    import static org.junit.Assert.assertTrue;
    import org.junit.Test;

    public class TestCase  {
    @Test
       
    public void test1 {
            assertTrue
    (tmp.getTermin().equals(soll));(//注意以处要换成自己的测试代码,这只是一个例子)
       
    }
    }

    在以下这个网站上还找到其它可能引起No runnable method的原因:
    http://www.dantoomeysoftware.com/pencils-down/2009/04/03/junit-error-javalangexception-no-runnable-methods/

    This error is a catchall for anything else that might be wrong with your test class.  First make sure any of the below problems are not occurring. 

    Your unit test code is running JUnit4.  At least one test method must have the @Test annotation.  Otherwise this error occurs.

    If the class you are testing has @Required setters for Spring injections they must be set otherwise JUnit will mask the missing required exception as a no runnable methods exception.

    If you are initializing your mock objects outside of the @Begin method you will get this error.

    If you are attempting to mock the same class more than once you will get this error.




  • Eclipse+Junit test report

    2010-01-14 17:46:51

    转自 Generating a JUnit test report with eclipse

    clear instructions on how to use the built in functionality in eclipse to generate nice Junit reports in HTML using ant.

    Now that I have found a solution to this problem I will post it in hopes that it might help others:

    This approach is makes use of the eclipse2ant plug-in which is standard on Eclipse release 3.1M6 and higher (http://www.geocities.com/richard_hoefter/eclipse2ant/).
    (注释:如果使用的是3.1版本以上的ECLIPSE则不用考虑
    eclipse2ant插件问题)

    1) First generate an Ant build file for your project.
    In the Export page select "Ant Buildfiles" it is under General. Then select a project that contains your JUnit tests. The default JUnit output directory is appropriately named "junit".

    (注释:在你的workspace中相应的PROJECT目录下创建一个名为'junit'的文件夹,以便存放输出结果)

    2) Next resolve dependencies by making sure that the junit.jar is added to Ant's "Global Entries."
    Window->Preferences->Ant->Runtime->Global Entries and Add External JARs... Navigate to your "eclipse" directory (where eclipse is installed). It is under "plugins" directory and presently the junit.jar is in a directory named "org.junit_3.8.1". If this is missing then you will see error messages since junit is an optional Ant task.


    3) Run then right click on the Ant build file (by default build.xml) and Run As->Ant Build... This will display a list of targets. All of the launch configurations you have previously configured will have a corresponding target in your Ant build file. Select the desired target(s), and also select the "junitreport" target. Check the "Target execution order" text area to make sure the junitreport is run last.
    (注释:在TARTGET list中选择时,要选择需要执行的TESTCASE和JUNITREPORT)

    4) Access to junit output directory of your project from your workspace path, click on index.html you will see the test result in browser.



    Whenever you run a test case it will generate results and will be placed in the junit output directory. These results are formatted into an HTML report by the junitreport target and stored in the junit output directory. 
  • Eclipse+TestNG

    2010-01-14 15:21:55

    1.Eclipse集成TestNG:http://testng.org/doc/eclipse.html
    2.SeleniumRC的相关介绍:http://seleniumhq.org/docs/05_selenium_rc.html#reporting-results
    3.Selenium RC1.0以下的版本不支持启动FIREFOX 和 SAFARI,执行时报500(internet server error),换成1.0版本就可以解决些问题.
    4.当对SAFARI进行测试时,如果遇到以下错误,可以用2种方法解决:
    java.lang.RuntimeException: Could not start Selenium session: Failed to start new browser session: java.lang.RuntimeException: Safari could not be found in the path!

    • (1)Please add the directory containing ''Safari.exe'' to your PATH environment variable
    • (2)explicitly specify a path to Safari like this: *safaric:\blah\Safari.exe {selenium = new DefaultSelenium("localhost", 4444, "*safari D:\\Program Files\\Safari\\Safari.exe", url);}

       



  • Eclipse+Junit+SeleniumRC

    2010-01-13 17:53:01

    目前正在研究如何将SeleniumRC和Junit结合起来进行REGRESSION TESTING.

    按照zhangting85博客中的说明一步一步的进行设置:

    原文地址:http://e-pyramid.blogspot.com/2008/04/setting-up-selenium-rc-and-junit.html

    I recently started learning Selenium RC on my own. I read the materials available on the Selenium RC website. This material assumes that you are familiar withJavaand JUnit concepts. Therefore, it is difficult to setup a working Selenium RC with Java for people having worked onTestAutomation with limited knowledge of Java and JUnit.
    Following are the step by step instructions to setup Selenium RC with JUnit for test execution.

    1. Download Selenium RC from www.openqa.org
    2. Extract the files to the following location C:\selenium-rc
    3. Download JUnit 4.4 from www.junit.org.
    4. Extract the files to the following location C:\junit4.4
    5. Download and Install JDK 1.6 or above to the following location C:\jdk1.6
    6. Create a new folder C:\selenium_tests (This would be the location where you will save the test classes).
    7. Set an environment variable CLASSPATH as C:\selenium-rc\selenium-java-client-driver-1.0-beta-1\selenium-java-client-driver.jar;C:\selenium_tests\;C:\junit4.4\junit-4.4.jar;
    8. Make sure that C:\jdk1.6\bin is included in your PATH environment variable.
    9. Download the GoogleTest.java from the Java Tutorials available for Selenium RC at www.openqa.org. Save this file under selenium_tests directory you made eariler.
    10. Open a Command Prompt and go to the following location. C:\selenium-rc\selenium-server-1.0-beta-1
    11. Type the following command to start the selenium RC server for test execution.

    >java -jar selenium-server.jar -interactive

    12. Open another command prompt window and go the location where you saved GoogleTest.java file. i.e. C:\selenium_tests
    13. Compile the java file with javac as

    >javac GoogleTest.java

    14. This would create a class file that you can run with JUnit for testing purposes as

    >java junit.textui.TestRunner GoogleTest

    You will notice that it would open a firefox session with Selenium Test Runner and execute the tests. In the end you will get the status of the test result on the command prompt as


    C:\Selenium>java junit.textui.TestRunner GoogleTest
    .
    Time: 5.769

    OK (1 test)

    This shows that you have successfully run GoogleTest.java as a Selenium RC test using JUnit.

    You can experiment editing GoogleTest.java and see the changes in the output.

    I would also recommend using Selenium IDE for recording a new test, saving it as Selenium RC Java test and then executing it using Selenium RC and JUnit.


    在执行过程中发现了以下几个问题:
    1.找不到GoogleTest.java,在网上找了一下几个,编译时报错,自己重新DEBUG了一下,上传在附件中作为参考吧.
    2. GoogleTest 编译成功后,没有办法执行,报以下错误:
    (1) Exception in thread "main" java.lang.NoClassDefFoundError:
    junit/textui/TestRunner.出现这个问题的原因是CLASSPATH设置不正确造成的,你可以通过以下2种方式解决此问题:
    • 右击"我的电脑"-高级-环境变量: CLASSPATH=.;C:\j2sdk1.4.1_02\lib;C:\junit4.1\junit.jar;(根据自己的环境进行设置,这只是一个例子,在设置过程上要注意 . 和 C:\junit4.1\junit.jar)
    • 在DOS窗口中执行TESTCASE时,附带上JUNIT的路径 java -cp C:\junit3.8.1\junit.jar;. junit.textui.TestRunner MyTest 
    (2) 按照(1)所述,设置CLASSPATH后还是不行,报了另一个错:Exception in thread "main" java.lang.NoClassDefFoundError: GoogleTest (wrong name: com/example/tests/GoogleTest).到目前为止我也不知道问题原因在哪,不过通过eclipse将junit和SeleniumRC集成在一起后就解决了.

    2.Eclipse+junit+selenium
    • (1)Open eclipse and create a new Java Project.

    • (2)Create a lib folder and import the required libraries:

    • From the menu select File -> Import -> File system. Select your jar and select the folder lib as target.
      • selenium-java-client-driver.jarfromSELENIUM_HOME/selenium-java-client-driver-1.0-beta-1
      • junit-3.8.1.jardownloaded from sourceforge.

    • (3) Then select the libraries, right-click and selectBuild Path>Add to Build Path
    • (4)Under src, in the default package import the GoogleTest.java and save
    • (5)To run the test right-click on GoogleTest.java and select Run As > JUnite Test



  • windows 命令行下 简单好用的查看端口占用情况的方法

    2010-01-12 17:55:06

     

    关键字: windows

    在windows命令行窗口下执行:

    C:\>netstat -aon|findstr "4444"




    TCP 127.0.0.1:4444 0.0.0.0:0 LISTENING 2434


    由上面得知,端口被进程号为2434的进程占用,继续执行下面命令:

    C:\>tasklist|findstr "2434"




    javaw.exe 2434 Console 0 16,064 K


    c:\>taskkill  /f /im javaw.exe

  • iPhone 2.2.1升级到3.0

    2009-11-19 11:20:45

    因为一直在针对iPhone软件进行测试,其中难免会遇到iPhone升级的问题.
    以下有一篇很适合初次接触iPhone的人员使用,在此转载,与之共勉.

    1. 升级篇: http://www.naodi.net/blog/ipod-touch-2-generation-os-3-0-upgrade-crack-perfect-the-new-system-escape-fig-text-tutorials/
    2. 通过电脑访问IPHONE篇:http://hi.baidu.com/kxw102/blog/item/a4e4a1c5aa82caa08326acab.html


  • Blackberry 如何支持CMWAP&CMNET?

    2009-06-24 09:56:13

    引用地址:http://bbs.51blackberry.com/archiver/?tid-65.html

    cmwap和cmnet的区别

    本文来源于网络,希望对大家有小帮助

    很多人都知道这是中国移动提供的两个不同的接入点,
    但是说到区别,恐怕很多玩家都不是十分清楚。其实,CMWAP 和 CMNET 只是中国移动人为划分的两个GPRS接入方式。前者是为手机WAP上网而设立的,后者则主要是为PC、笔记本电脑、PDA等利用GPRS上网服务。它们在 实现方式上并没有任何差别,但因为定位不同,所以和CMNET相比,CMWAP便有了部分限制,资费上也存在差别。

    WAP只是一种GPRS应用模式,它与GRPS的接入方式是无关的。WAP应用采用的实现方式是“终端+WAP网关+WAP服务器”的模式,不同于一般 Internet的“终端+服务器”的工作模式。主要的目的是通过WAP网关完成WAP-WEB的协议转换以达到节省网络流量和兼容现有WEB应用的目 的。WAP网关从技术的角度讲,只是一个提供代理服务的主机,它不一定由网络运营商提供。但据我所知,中国移动GPRS网络目前只有唯一的一个WAP网 关:10.0.0.172,有中国移动提供,用于WAP浏览(HTTP)服务。有一点需要注意,WAP网关和一般意义上的局域网网关是有差别的,标准的 WAP网关仅仅实现了HTTP代理的功能,并未完成路由、NAT等局域网网关的功能。这就决定了它在应用上所受到的限制。

    为了从应用中区别两者的定位,中国移动对CMWAP作了一定的限制,主要表现在CMW
    AP接入时只能访问GPRS网络内的IP(10..*),而无法通过路由访问Internet。我们
    用CMWAP浏览Internet上的网页就是通过WAP网关协议或它提供的HTTP代理服务实现的。也就是需要通过中国移动GPRS网络唯一的一个 WAP网关:10.0.0.172。CMNET拥有完全的Internet访问权,这里就不多说了,主要让我们来看看CMWAP。因为有了上面提到的限 制,CMWAP的适用范围就要看WAP网关所提供的支持了。目前,中国移动的WAP网关对外只提供HTTP代理协议(80和8080端口)和WAP网关协 议(9201端口)。因此,只有满足以下两个条件的应用才能在中国移动的CMWAP接入方式下正常工作:
    1. 应用程序的网络请求基于HTTP协议。
    2. 应用程序支持HTTP代理协议或WAP网关协议。

    而cmnet则不受任何的限制。
    说白了就是说通过cmwap的方式访问,需要走中国移动的网关通过http协议去连接,
    这样的后果就是速度会变慢,相信很多朋友都用过代理服务器吧,对,就是那个感觉,而通过cmnet来连接的,就是直接连接到无限乾坤在internet上 的服务器,速度会比cmwap的快一些。说完了速度,就该说价格了,如果玩家没有采用套餐的话,那cmwap和cmnet都是一样的,1kb三分钱,或者 订了一个xx元包xM的套餐,超出部分1k一分钱,这种时候,同等价格都一样,据我了解,cmwap版本流量会大一些,所以还是用cmnet比较好,又快 又省钱。但是对于很多地方的动感地带用户而言,情况可能有些不同,相当一些地方的动感地带只能访问cmwap,不能访问cmnet,所以没地选择了,还有 一些地方有动感地带的包月上网卡,有10元、20元、50元的等等,具体的要看当地的资费政策了,而这些包月卡通常只包cmwap的流量,这个时候如果用 cmnet还要另外付费,所以建议这些用户还是使用cmwap吧。最后总结一下,如果玩家的手机卡只能访问cmwap或者有cmwap包月的套餐,那么您 就使用cmwap连接来游戏,否则使用cmnet连接是更好的选择

    所以,一句话,有wap包月的地区就使用wap包月上网,没有包月业务的就用cmnet,反正都是按流量算钱,为什么不选择快一点的呢(但还是要提醒大家,按流量计费产生的费用是巨大的,要多多注意)

    完美ServiceBook 让BB自带浏览器使用CMWAP/CMNET双接入


    引用地址:http://www.3g303.com/htm_data/50/0906/22838.html
    这个ServiceBook可实现让BB自带浏览器使用Wap和Net双接入点,并且ServiceBook包含Email、Push、MMS条目!已经有网友测试联通可用,ServiceBook条目部分参考此帖以及其他前辈的研究成果! !J<Xel {  
    DJ<+" .v!  
    此ServiceBook无IPPP条目不可用于激活,因此只针对上网免激活的BB机型! >AX_"Q~  
    ]?H12xz  
    ServiceBook导入方法(不用删除和重启): ,'HjL:r  
    y[85eM  
    首 先在BB上进入 “Option 选项”->“Advanced Option 高级选项”->“Service Book 服务与预订”,然后按住(是按住)Alt,再依次按键“S-B-E-B”(如果是增强型SureType键盘按S的话就是两次A),然后然后会出现提示 “Legacy SB Restore Enable”,意思就是现在可以导入SB了(这样就不用把浏览器删来删去,可以直接导入)! rf|Nu3AJ  
    d WkQ NFKF  
    然 后用USB连接BB,在PC上打开Desktop Manager 桌面管理器,选择“备份和恢复”,继续选择“高级”,在弹出的IPD管理窗口中点击“文件”选项,“打开”我下面提供的Service Book的IPD文件,单机向右的箭头,即开始导入Service Book,导入完成后关闭桌面管理器,断开USB连接即可开始在BB上开始用CMWAP/CMNET双接入自带浏览器了! '}(>s%~  
    h M7 SGEV  
    双接入切换方法: ?2da6v,t  
    FWW@t1)  
    按 B或者手动打开自带浏览器,会提示“Invalid address http:// 无效的网址”(因为我删除了自动载入的主页,所以会这么提示)。在浏览器界面打开菜单选择“Option 选项”(按快捷键O也可打开选项),选择第二项“General Properties 常规属性”,进入常规属性设置界面后,看见第一项“Default Browser 默认浏览器”,若要使用CMWAP则选择“WAP Browser”,使用CMNET则选择“NET Browser” N}%AUm/L  
    %G 2g @2  
    在添加书签的时候,可设置这个书签对应的接入点Net还是Wap,这样就可以不用切换常规属性中的浏览器设置而对特定的书签使用特定的接入点! b3[[ Ah-  
    KzV|::S^  
    CMNET下访问各手机网站可识别黑莓UA,经测试,用cmnet访问GOOGLE移动版可直接下载Google的黑莓软件,自动匹配黑莓机型! . :Ob^b3<t  
    CMNET下还可以下载大文件,因为CMWAP的9201端口只能下载333KB的单个文件,我改成80或8080后会上不了网(很诡异),而CMNET是没有文件大小限制的! E_A 5KLP  
      6?%$e$s  
    Uaux0W  
    &F :.V$  
    P.S 关于”Invalid address http://” 出现只需按回车,然后就可以使用各种快捷键来继续操作,比如打开新地址,书签等, 也不会载入多余首页耗费流量,话说我是有意删除首页的,窃以为这是最佳方案!如果被”Invalid address http://”吓到,请不要惊慌! Q.eD:@%iE  
    m?yztm~u  
    第一种Service Book,此SB包含6个条目,直接导入无需重启即可使用,移动和联通用户均可下载这个 ServiceBook_Net_Wap_Email.rar (1 K) 下载次数:2 s 7w A3|9  
    wAW{{ p  
    二 种Service Book,此SB包含2个条目(CMNET和EMAIL),导入后需重启BB后会生成另外4个条目,在CMWAP模式下,会出现自动载入的首页(喜欢移动 梦网首页的下载这个吧),而且在选择浏览器时WAP模式名称为“Monternet”,此Service Book只针对移动用户! ,Nw2cv}D  
    cmnet_email.rar (1 K) 下载次数:2 _8y4U 
  • Blackberry 中文支持

    2009-06-23 10:58:54

    最近在对用黑莓手机测试ORACLE的软件,有一些本地化的测试要求能显示中文和输入中文.当时黑莓手机是从国外邮寄过来的,系统也是提前装好的,而且不支持中文.Google了一下,发现几篇不错的文章,共享一下.
    1.Reading Chinese on Your Blackberry: http://www.certifiedchinesetranslation.com/read-Chinese-on-Blackberry.html
    (1)If You just want to read Chinese, without any input, You could try this BlackBerry Chinese character pack:
    net_rim_font_chinese
    (2)Make sure you have the latest Blackberry Desktop Manager installed. Blackberry Desktop Software(note:download eastAsia version)
    (3)Install it to the PC by running the file you downloaded
    (4)On your PC, locate the vendor.xml file and delete it. It's located in c:\program files\common files\research in motion\apploader
    (5)Make sure the Blackberry is connected with
    PC and Click on loader.exe to open Desktop Manager which located in c:\program files\common files\research in motion\apploader.
    (6)
    After a short while You see a window 'Device application selection', click on Add, select the net_rim_font_chinese pack
    (7)Click on Next
    (8)Once it's done loading the new Blackberry Desktop Software it will reboot, then you can see the chinese character with your blackberry
    2.Input Chinese on Blackberry: http://yolearnchinese.com/archives/blackberry-chinese-input-method-support

  • TRAC Configure

    2009-06-05 14:11:47

    公司一直在用TRAC作为BUG管理工具,原先我们用的是0.10版本的,一直用了两年,虽然期间也发现了TRAC 0.10中的一些不方便使用的地方,比如bug流程中没有测试的部分,经过流程上的口头统一还都可以克服. 但自从与我们的客户合作后,客户要求我们的TRAC能与他们的BUG库实现导入导出的对接,这下麻烦可来了.客户的BUG库比较复杂,有很多功能必须通过自定义才能实现, TRAC 0.10偏偏没有自定义的能力. 后来发现Trac 0.11可以实现自定义的功能,但需要配置一下, 0.11中的自定义功能:
    1.Resolution 自定义
    • 在解决BUG的过程中,总有一些BUG是属于现在不解决,要以后解决的,那在选择resolution时,应该有一个选项能标识出以后修改.
    • 用ADMIN的权限登录TRAC,打开"ADMIN" TAB
    • 单击resolution
    • 添加一个项为"Deferred",保存
    • 现在登录试试,应该可以看到自定义的Deferred项了.
    2.自定义字段
    • 在创建BUG的过程中,需要一些其它的选项,比如"是否属于回归测试BUG"等等, 但TICKET默认的字段中没有这些选项,这就需要管理员修改TRAC.INI文件.
    • 参考地址:https://tiger.cn-acg.com/trac/oracle-msa2siebel/wiki/TracTicketsCustomFields
    • 实例:要添加一个"是否属于回归测试BUG"的复选框
      • 管理员在某一PROJECTTRAC安装目录-Conf目录中找到 TRAC.ini 并双击打开
      • 在这个文档的最后面添加如下内容
      • [ticket-custom]
      • RT(这个名字根据自己的需要修改)= checkbox(类型)
        RT.label = Regression Testing(显示在TICKET中的字段名称)
        RT.value = 0(默认值是不选中,如果是1则默认值为选中状态)
      • 保存TRAC.ini
      • 刷新TRAC,创建一个TICKET,看一下是不是多出了一个复选框字段"是否属于回归测试BUG",且默认值为不选中状态.
    3.将自定义字段显示在Test report中
    • 比如我想创建一个新的TEST REPORT,这个TEST REPORT可以查询出所有BUG,并且复选框字段"是否属于回归测试BUG"做为一列显示在这个TEST REPORT中,该如何操作呢?
    • 管理员单击View tickets TAB,然后在打开的页面中单击"CREATE NEW REPORT"
    • 输入TEST REPORT的名称,比如"All tickets for ** build"
    • 在Query for Report栏中输入如下SQL语句
    • SELECT
         id AS ticket,summary, component, status, resolution as Suebstatus,(CASE WHEN RT.value='1' THEN 'yes' ELSE 'no' END) AS Regression, #自定义字段的别名为Regression,且在显示时,如果值=1就显示yes,如果值=0则显示no priority, t.type AS type,
         owner,
         strftime('%Y-%m-%d',time,'unixepoch') AS Created, #TRAC日期格式存的字符形式的,要想导入时显示的是日期格式,必须做一下格式的转换
         strftime('%Y-%m-%d',changetime,'unixepoch')AS Modified, description AS _description,
         reporter AS reporter
        FROM ticket t
        LEFT OUTER JOIN ticket_custom RT ON (t.id = RT.ticket)#联合自定义的字段
        LEFT JOIN enum p ON p.name = t.priority AND p.type = 'priority'
        WHERE status IN ('new', 'assigned', 'reopened', 'closed') and version='** build'
        ORDER BY time desc
    • 保存,看一下这个TEST REPORT regression是不是做为一列显示出来呢!
    4.自定义测试流程
    • 在TRAC 0.10版本中不能体现测试的流程,通过配置TRAC 0.11的workflow,可以把测试流程嵌入到BUG生命周期中.
    • 管理员在某一PROJECTTRAC安装目录-Conf目录中找到 TRAC.ini 并双击打开
    • 在这个文档的最后面添加如下内容
    • testing = new,accepted,needs_work,assigned,reopened -> testing
      testing.name = Submit to reporter for testing
      testing.permissions = TICKET_MODIFY

      reject = testing -> needs_work
      reject.name = Failed testing, return to developer

      pass = testing -> closed
      pass.name = Passes Testing
      pass.operations = set_resolution
      pass.set_resolution = fixed
    • 保存,无需重启SERVER. 打开一个open状态的BUG,看一下是不是多了"Submit to reporter for testing"的选项.
    • 选中"Submit to reporter for testing"的选项,并更新, 再看一下是不是现在成了三个选项"leave as testing","Failed testing, return to developer","Passes Testing".
    5.将ASSIGN TO 字段改为下拉列表的形式
    这个目前正在研究,我还不是特别的明白,可以把参考地址提供给大家共同研究:http://pacopablo.com/wiki/pacopablo/blog/set-assign-to-drop-down
    6.TRAC独立版window系统下的安装
    • http://trac.edgewall.org/wiki/TracOnWindowsStandalone
    • 需要注意的是在create a Project Environment时候,除了填写PROJECT名称外,其它的均按默认操作,直接回车即可(C:\Python23\Scripts> python trac-admin C:\path\to\trac_env initenv)
    • 启动独立版的SERVER:C:\Python23\Scripts> python tracd --port 8000 C:\path\to\trac_env
    • 通过浏览器打开 http://localhost:8000/projectname

  • Jmeter 学习日志

    2009-05-31 11:40:45

    Jmeter是一款开源的性能测试工具,其优势不仅仅它是免费的,更大的优势还在于它有很大的扩展性,如果你有编程基础,这款软件对于您来说是最好不过的了.
    前段时间一直在学习JMETER, 找到了很多资料,下面所它们归类在一起.
    1.JMeter的基础知识:
    2.Jmeter的web service应用
    • 中文说明地址:http://webservices.ctocio.com.cn/tips/345/6594345.shtml
    • 在测试WEB Service时,要用到两个.JAR文件(activation.jar and mail.jar),我已经上传到附件中了,下载完后,放在jmeter安装目录下的LIB目录中.
    3.Jmeter的使用方法:Jmeter存在两种使用方法
    • GUI Mode:指通过JMETER安装目录-Bin目录的jmeter.bat来启动jmeter
    • Non-GUI Mode:指通过命令行来启动或执行jmeter. 参见:http://icfyl.bokee.com/viewdiary.25998003.html
    4.Jmeter的SSL管理:
    • GUI Mode: 参考:http://www.jajakarta.org/jmeter/1.7/en/user_manual/sslmanager.html
      • 必须使用JDK1.4以上,如果是JDK1.4以下版本的,要下载JSSE.jar,然后将这个文件拷贝到JDK安装目录-LIB目录中.
      • 将证书保存为.p12格式
      • 同时将CA根证书以.JKS的格式保存,并将其放置在JRE's lib/security 目录中.
      • JKS,pem格式转换可以通过java keytool来实现,也可以通过openssl来实现.
      • 我使用的是java key tool, 以下是操作步骤:
        • 只要安装了JRE或是JDK,keytool会自动安装.
        • 开始-运行-CMD
        • 指向存在CA证书的目录
        • 执行以下命令: keytool -import -alias myCA(可以自定义) -file myCA.cer(要填写证书的正确名称) -keystore truststore(自定义)
        • 注意在生成文件的过程中要求输入密码,这个密码一定要与生成证书的key保持一致.
        • 在上述的目录中即会生成一个JKS文件,将这个文件拷贝到JRE's lib/security目录中.
        • 可以通过以下命令查看JKS文件:   keytool -list -v -keystore mykeystore(自定义)
      • 在Jmeter中选择 Options->SSL Manager
      • 当执行测试时会弹出一个窗口,要求输入密码,输入生成证书时的KEY密码.(如果这个过程不知道,可以请教开发人员)
    • Non-GUI Mode:需要修改jmeter的system.properties文件,具体过程参见
      • http://www.nabble.com/SSL-certificate-td5276645.html#a5276645

    5.Jmeter的参数化&变量使用
    • 在Jmeter中应用变量: http://www.51testing.com/html/63/n-82563-2.html
    • Jmeter参数和正则表达式:http://blog.sina.com.cn/s/blog_48f8c8160100093l.html
    • 在Jmeter的参数化过程中,有可能要用到正则表达式,以下是一个很好的正则表式测试器,可以帮助你更快更准确的取得所需要的正则表达式: http://icl.pku.edu.cn/member/hrzhang/Another-Regex-Test.htm

  • Sparklines

    2008-12-22 10:59:46

    1.最近比较流行使用sparkines来展现大数据量的图形,关于什么是sparklines请参考:http://www.edwardtufte.com/bboard/q-and-a-fetch-msg?msg_id=0001OR&topic_id=1&topic=

    2.Execl提供了一种可以生成sparklines的add-in,下载地址参见:http://www.spreadsheetml.com/sparklines.html

  • Silverlight application testing

    2008-11-05 12:50:07

      最近在一个SilverLight项目的测试,关于什么是Sliverlight大家可以去这个网址上去看: http://silverlight.cn/

      Silverlight项目与Flex项目一样,如果你想找一个合适工具进行界面测试是非常不容易,更何况silverlight刚出来没有多久,世面上很难找到一个界面测试工具.我在网上苦苦寻求了一个礼拜,终于发现了一个工具Imacros Broswer,它可以实现silverlight界面录制和回放的工作.

      今天我要叙述的是如何针对一些特定的功能进行测试:

      1. Bar graph

    • (1) Requirement:

        

      • 上图中bar的整体长度是需要在配置文件中设定的,目前是2sec
      • bar的右侧显示的当前bar的长度(0.1sec)
      • 当前bar的长度为绿色所标识的部分,即0.1/2所得到的
      • bar中有一个marker(竖线)来做一个分界点,如果当前bar的长度超出这个marker则显示红色,如果没有超出这个marker则显示绿色;当marker超出总长时,则不显示;其中marker也是在配置文件中设定的. 
    • (2) Test cases design
      • 根据等价类划分的方法,我们首先要找出输入值,然后根据输入值做等价类划分和分界值的查找,进而得出预期的结果
      • 输入值:
        • bar总长度(总长度为空或非法的情况不考虑)
          • 总长度为0时
          • 总长度为正常值时
        • 当前bar长度 (当前长度为负值或其它非法值时不考虑)
          • 当前长度为0时
          • 当前长度为空时 
          • 当前长度>总长度时
          • 当前长度=总长度时
          • 当前长度<总长度时
        • Marker位置 (当为负值或空或其它非法值时不考虑)
          • Marker为0时
          • Marker=总长度时
          • Marker<总长度时
          • Marker>总长度时
          • Marker<当前长度时
          • Marker>当前长度时
          • Marker=当前长度时
      • 等价类和边界值划分

  • VMWARE-Ubuntu 网络配置模式

    2008-07-06 10:28:59

    VMWARE的网络配置模式有三种,详细信息参见:http://www.51cto.com/art/200709/56173.htm

    我采用的是其中的桥接模式,自动分配网址,在没有安装VMWARE TOOL之前我是可以上网的,但是安装了VMWARE TOOL之后就上不了网了.

    我尝试着做了如下步骤,发现又可以上网了:

    • 重新启动VMWARE
    • 打开APPLICATION-ATTACHMENT-TERMINAL
    • 输入:sudo dhclient eth0重新获取地址.

     

  • Ubuntu下VMware Tool的安装

    2008-07-06 09:35:50

      最近在Ubuntu下安装VMWARE TOOL遇到了一些麻烦,因为本人并不熟悉Ubuntu,所以从网上搜索了一下关于这方面的文章,终于根据一篇文章的介绍完成了VMWARE TOOL的安装,在对文章的贡献者表示感激之外,也把这篇文章转载共享给遇到类似问题的朋友们.

     

    在Ubuntu安装VMware Tool
    作者: lrfz008  发布日期: 2008-3-13    查看数: 887   出自: http://www.linuxdiyf.com
    从卓越买的几本书——“鸟哥”私房菜第二版已经到了,前些天博客挂了的时候,我就在安装Linux玩。先是在虚拟机装Ubuntu,后来又单独加了块硬盘,装了Fedora。

    安装linux过程还是比较顺利的,就是在安装“VMware Tool”时,遇到点麻烦,经过搜索资料,终于装好了,记一下流程。

    VMware Tool就相当于虚拟机的驱动,因为Ubuntu出于安全的原因,默认是限制root帐号的使用,安装Ubuntu时会随机设置root密码。所以要安装VMware Tool必须先取得root管理员权限。

    要用这个命令:sudo,一开始我装Ubuntu-server版的时候,就纳闷,怎么关机还不给关了,原来是要root权限,具体就是$sudo halt。

    一、下面说说安装VMware Tool具体步骤:

    1、打开虚拟机,编辑虚拟机设置,使用ISO映像,为你的Linux安装盘;

    2、进入Ubuntu以后,取得root管理员权限;

    $sudo su
    输入当前用户密码

    这样就取得root管理权限了,以后要退出root,可以用这个“exit”命令。

    3、挂载光驱,因为VMware菜单,“虚拟机 - 安装VMware工具”就相当于一个驱动光盘,点击它以后,要把这个光盘挂载到系统中使用;

    # mount /cdrom
    将VMware Tool挂载到光盘中

    # cd /cdrom
    # ls -a
    以上两步为了查看文件名,不同的VMware版本名字会不一样

    # cp VMwareTools-5.5.1-19175.tar.gz /tmp
    复制驱动文件到临时目录,准备安装

    # cd /tmp
    # tar xzf VMwareTools-5.5.1-19175.tar.gz
    在tar解包之前,可以用ls -al查一下tmp目录中打包文件具体名称。

    # cd vmware-tools-distrib
    还在/tmp目录

    # ./vmware-install.pl
    注意文件名前一定要加 ./ 否则会提示说找不到文件

    之后,一路回车,遇到 [yes] 时,就输入yes回车,即可。

    总结一下,Linux初步印象:

    1、在linux中,命令名称大小写敏感;

    2、特殊符号;

    . 当前目录或者是隐含文件

    .. 上级目录

    $ 一般用户帐号提示符

    # 管理员帐号提示符

    ~ 用户帐号主目录提示符

    命令行提示符格式: 帐户名称@机器名称: 目录名称#

  • Selenium RC - PHP Client server

    2008-05-17 16:20:27

    近期在学习Selenium,Selenium的工具有四种,四种工具各有不同,各种工具的比较参见:http://blog.csdn.net/yangxiaogang/archive/2006/12/25/1460452.aspx . 我选择了Selenium RC,我所采用的语言是PHP.
    PHPUnit集成了Selenium的API接口,通过直接调用Selenium的API即可完成测试动作和结果验证
    本章主要介绍如何通过PHPUni驱动PHP client server完成测试.
    1.下载selenium Rc:http://blog.csdn.net/yangxiaogang/archive/2006/12/25/1460452.aspx
    2.解压到一个目录下,我的解压到了d:\seleniumrc
    3.下载apache,我本机使用的是apache2.2.x
    4.下载PHP5.x windows安装版本,我本机安装的是php-5.2.6-win32-installer.msi
    5.安装PHP(我的安装路径D:\PHP),安装过程中注意选择安装"Extras"中的"PEAR Installer"
    6.安装PEAR:PHP安装完成后,并未自动安装PEAR,所以我们要到PHP安装目录中,运行go-pear.bat进行安装,详细安装的过程参见:http://www.phpchina.com/bbs/viewthread.php?tid=61542.我在这只把重要的几步写下来.
    (1)在go-pear命令窗口中,根据提示设定安装路径
    (2)PEAR安装成后,根据提示修改PHP安装目录中的"PHP.INI"文件和配置环境变量,以下是我本地机上安装成功后的提示:
    Would you like to alter php.ini <C:\WINDOWS\system32\php.ini>? [Y/n] : y

    php.ini <C:\WINDOWS\system32\php.ini> include_path updated.

    Current include path           : .;C:\php5\pear
    Configured directory           : D:\PHP\www\pear
    Currently used php.ini (guess) : C:\WINDOWS\system32\php.ini
    Press Enter to continue:

    ** WARNING! Old version found at D:\PHP\www\bin, please remove it or be sure to use the new d:\php\www

    The 'pear' command is now at your service at d:\php\www\bin\pear.bat

    ** The 'pear' command is not currently in your PATH, so you need to
    ** use 'd:\php\www\bin\pear.bat' until you have added
    ** 'D:\PHP\www\bin' to your PATH environment variable.
    (3)根据上述红色字体的提示,先打开PHP安装目录中的"PHP.INI"文件,找到如下段落
    ; Windows: "\path1;\path2"
    ; include_path = ".;c:\php\includes"
       将其修改为
    ; Windows: "\path1;\path2"
    include_path = ".;c:\php5\pear"

    (4)执行pear.bat使pear命令设置到PATH路径中.
    (5)右击我的电脑-高级-环境变量,将"D:\PHP\www\bin"加入"PATH"变量中.
    7.PEAR安装完成后,继续安装PHPunit
    (1) 首先加载PHPunit的chnnel,执行下列命令pear channel-discover pear.phpunit.de
    (2) 继续安装:pear install phpunit/phpunit
    (3) 直到出现提示" install ok: channel://pear.phpunit.de/PHPUnit-3.2.19",说明PHPUnit安装成功了.你可以在PEAR目录中找到它.
    8.执行测试,以selenium rc/selenium-php-client-server中的GoogleTest.php为例
    (1)保证selenium server一直运行.
    CMD-到selenium-server路径下输入-java -jar selenium-server.jar
    (2)启动测试用用例:
    CMD-到selenium-php-client-server路径下输入-phpunit Goole.Test.php
    (3)查看运行结果:
    执行完成后,可以看到执行结果,如下:

    FAILURES!
    Tests: 1, Errors: 1.


  • 英语发音规则

    2008-04-18 10:59:41

    最近在学习英语,其实最困难的就是英语发音了.
    一直想找一个快捷方式掌握英语发音的规则.
    在网上搜索了一下,找到了一个讲解英语发音规则的网站:http://www.sprew.cn/index.php
    但是有一个感觉,这个网站讲的东西太多了,学习完后,还是不太系统.
    根据这个规则我自己总结了一下英语发音的规则:
    • 首先,确定单词属于单元音,双元音还是多元音.
      • 音节划分原则:从单词拼写形式上看,有几个元字组就有几个音节.
    • 其次,确定重读音节位置:
      • 单音节多是重读
      • 双音节:第一个音节通常是重读音节,含有a,be,de,re,in,ex等前辍的双音节词往往是第二个音节上重读
      • 多音节:通过在倒数第三个音节重读,词尾有-ic,-tion,-sion的词,在这几个词的前一个音节上重读.
    • 再次,确定音节的发音
      • 重读音节
        • 开音节
        • 闭音节
      • 非重读音节
    • 最后,音节划分
      • 在重读音节和非重读音节的相邻处有两个辅字组时,一个辅字组属于前面的音节,一个辅字组属于后一个音节
      • 在重读音节和非重读音节的相邻处有1个辅字组时,如果前面重读音节里的元音是长音则辅字组属于后面一个后面一个音节,如果重读音节里面的元音是短音,则属于前面的音节.
  • 北京华美汉盛软件技术有限公司-诚招软件测试工程师

    2008-03-21 14:17:15

    1.公司简介:
     
        2005 年 12 月,四位拥有丰富业界资源的美国人,两位曾在美国学习工作多年的中国人,以共同的梦想,互补的优势,开始了 Aragon Consulting Group 的筹建。

    一间公寓,一个外包项目,三位软件工程师,我们 SOHO 起步,从 2005 的冬季走出……

    春至秋来,历经寒冬的坚忍与春夏的汗水,我们,北京华美汉盛软件技术有限公司(Aragon Consulting Group 中国独家合作伙伴),从只能容纳数人的公寓,搬到能容纳数十人的办公室,再到 2007 年 4 月,我们在地处北京西南四环的总部基地有了属于自己的、能容纳上百人的独栋六层小楼,数十位优秀的工程师组成一个个快速反应小团队,每天为我们的美国客户量身订制着最好的 IT 服务;而美国方面的 Aragon Consulting Group,业已邀请到多位世界顶尖级资深企业家加盟到公司的顾问团──这一切,我们只用了 16 个月。

    时间前行,奋斗不息。

    今天,世界软件外包产业由印度人奏着最强音;明天,这不远的十年,我们要让自己的身影与巨人比肩!

    我们对成功的热望、梦想的追逐,化作前行的力量、坚实的脚步、以及──对优秀人才如饥似渴的寻觅──我们深知,这个“躯体”的茁壮,需要每一个才华横溢的你各司其职各尽其能地燃烧!

    华美汉盛的目标之一,便是为每一位专业人士提供这样一个平台,让你可以见证并亲历这个团队走向职业化、专业化的进程,并在此进程中扮演重要角色;同时,我们对这样的工作方式有着强烈而坚定的认同感──敏捷、高效、自由、快乐、业绩导向──因而我们便尽心尽力地创造这样的环境,以期团队里所有成员都能尽情挥洒自己的才华与创造力,最终实现公司的壮大与自我价值的升华。

    竭诚欢迎所有有志于软件技术开发,同时也愿意在新兴企业中一展拳脚的人士加入我们的团队!

    2.招聘岗位:软件测试工程师(若干),岗位职责要求:
    • 测试技术要求:
      • 测试基础知识扎实.
      • 熟悉软件测试基本流程.
      • 有需求测试经验者优先考虑.
      • 精通WinRunner(QTP,Selenium)、LoadRunner等功能和性能测试工具.
      • 精通一到两个BUG管理工具.
      • 了解TD,Testlink等测试管理工具
    • 素质和经验要求:
      • 一到两年B/S系统测试经验
      • 较强的语言表达能力
      • 有责任心,具有良好的沟通、组织协调能力及团队合作精神
      • 良好的英语读/写能力.
    3.公司信息:
    •  北京华美汉盛软件技术有限公司:http://www.aragonconsultinggroup.com/
    •  地址:北京市丰台区南四环西路丰台科技园
    •  电子邮件:zhaopin@cn-acg.com
    •  MSN:jinzhoudoudou@hotmail.com

  • CMMI-评估流程

    2008-03-16 01:19:51

    前面了解了CMMI基础知识和评估方法,接下来介绍一下如何进行实施CMMI的评估.

    CMU/SEI(美国卡内基•梅隆大学的软件工程研究所)提供了一个实用的、便于理解的CMMI实施方法-IDEAL(又可称为CMMI过程改进生命周期模型).该方法建议使用CMMI进行改进软件过程的用户,按照启动、诊断、构建、实施和推进等五个阶段开展软件过程改进工作.

    • I——启动(Initiating),通过与企业高层管理者及过程改进相关涉众进行沟通,明确企业改进流程的商业目标;
    • D——诊断(Diagnosing),确定现状与目标之间的差异;
    • E——构建(Establishing),计划如何达成目标;
    • A——实施(Acting),根据计划开展工作;
    • L——推进(learning),从经验中学习,以提高未来使用新技术的能力。

    IDEAL VS PDCA

    PDCA循环(PDCA Cycle)戴明循环(Deming Cycle)

    PDCA循环的概念最早是由美国质量管理专家戴明提出来的,所以又称为“戴明环”。它是全面质量管理所应遵循的科学程序。全面质量管理活动的全部过程,就是质量计划的制订和组织实现的过程,这个过程就是按照PDCA循环,不停顿地周而复始地运转的。PDCA四个英文字母及其在PDCA循环中所代表的含义如下:

    • P(Plan)--计划,确定方针和目标,确定活动计划;
    • D(Do)--执行,实地去做,实现计划中的内容;
    • C(Check)--检查,总结执行计划的结果,注意效果,找出问题;
    • A(Action)--行动,对总结检查的结果进行处理,成功的经验加以肯定并适当推广、标准化;失败的教训加以总结,以免重现,未解决的问题放到下一个PDCA循环。
311/212>
Open Toolbar