Tips for load test by using Visual Studio 2012 Ultimate

Tips for load test by using Visual Studio 2012 Ultimate

 

Have some time to use the visual studio 2012 ultimate edition for load test recently.  So there is some basic tips about this.

1.      Only the ultimate edition VS 2012 has the web performance and load test ability.
Trial version VS 2012 only support Max 25 user load.
You must install all the VS update for the load test. As first version VS 2012 has many bugs in testing. Current latest UP is 3.

2.      You can follow the walk through of the Microsoft to step by step create the web test and load test.  This is fast and best way to start learn recording and concepts.

http://msdn.microsoft.com/en-us/library/vstudio/ms182551.aspx

http://msdn.microsoft.com/en-us/library/vstudio/ms182552.aspx

http://msdn.microsoft.com/en-us/library/vstudio/ms182594.aspx

And I have some tips can make you understand advanced load test skills quickly:

 

How to deploy test used resources files for the file test?

Such as you want test upload file feature , so you need source file to use,  when the web test is recorded, web test will not use the source folder of yours anymore. So you have to put the source file into the deploy folder of your test project. What you need to do is to add the folder or files into your project, by add files from “local.testsettings”—deploy, you can realize this.

http://msdn.microsoft.com/en-us/library/vstudio/ms182475.aspx

 

How to make the web site host URL as the parameter input for web test?

There is feature called “Parameterize Web Servers” feature in the web test, can auto extract the site host name and port number from the requests. This can save the time if you want switch your test from a UAT server to a production server.   What you to do is just modify the “WebServer1” and other  parameters to change the host name.

How switch test from a http site to a https site?

If your target has enable the https, but all site content are same. What you need to do is change the “Parameterize Web Servers” data to make it as https, you do not need to re-record all your request.

What you need to do from a web test to a load test?

1.      Your web test may run fine if you just run once every time, but start to run it as the load test may get issues as concurrent user will cause the conflicts if user conflict at the features, such as check in and check out same file, rename/delete same file etc.

2.      A load test recorded by default will create random unique resource names, such as you upload a file, load test will create unique file name for you at the upload request. Open your request and check the  file name , under the properties, there is some thing called “Generate Unique Name” to control whether or not create unique name for each request.

3.      After you have the web test, and you prepare the data source csv file already, then add/create DS into your test project, you can use the DS data in your load test to let test use the file name from the DS. By this format{{}}, what you need to do is to go through each request data to check if any thing can be changed/inserted by the DS data, by this way you can create a mean full load test. Such as each user load create separate file/ rename/delete/check in /check out separate file. File named is dynamic defined from DS csv file: this will avoid load test failed by conflicts.

4.      In load test, there is some thing important, one is the “load pattern”, you need to understand “constant load ” and “step load” pattern, it will be very useful. And under the “Running Setting” , the “Run Duration” and “Test Iteration” is very important.  Iteration here mean run once the web test, when a load test start to run, each user load will run the iteration again and again, unless  the Max Test iteration reached or time duration is reached. This is basic idea of the load test works.

 

Data drive test by data source – how to create a csv file and use it as data source for your test request?

You can create a Data source into your test project by a CSV file:

username, password
user1, password1
user2, password2
user3, password3
user4, password4
user5, password5

then you can use the data by binding call, {{ UserDS.UserNameFile#csv.username}} in the request data input. Check each request data and web server XML input to make sure the data is changed upon your needs.

http://msdn.microsoft.com/en-us/library/ms404707.aspx

http://msdn.microsoft.com/en-us/library/bb385971.aspx

Data source access methods explaination

http://blogs.msdn.com/b/slumley/archive/2008/03/14/description-of-access-methods-in-data-sources.aspx

How to create different user account from a data source (csv file) to log in to the page?

You can create a csv file with user name and password inside, and use it in the web test as the Data source, to load test will auto log in with these users during the test, please note this does not means the “user load” in the test. Even you only has one user account , user load still can simulate hundreds concurrent user load for you in test.

http://social.msdn.microsoft.com/Forums/en-US/80c15dfd-5265-4e9f-becc-5e13fdf19596/how-do-i-configure-multiple-users-in-a-load-test

How to create a plugin to do each user use each row from DS?

http://social.msdn.microsoft.com/Forums/fr-FR/5853028c-d297-45fb-ba46-ae346fa1e21c/load-test-datasource-distribution

how to create a plug in

http://msdn.microsoft.com/en-us/library/ms243191%28v=vs.100%29.aspx

Difference between the concurrent users load and VS multiple account?

http://social.msdn.microsoft.com/Forums/en-US/5829e774-f552-42e9-b43d-46daaaa4e6a0/load-testing-for-concurrent-users

how to debug a web test

http://blogs.msdn.com/b/slumley/archive/2007/04/10/how-to-debug-a-web-test.aspx

 

How to install test controller and agent

If one test client is not enough, you can install the controller and agent to make several client PC to make the test.

http://msdn.microsoft.com/en-us/library/vstudio/hh546459.aspx

http://msdn.microsoft.com/library/hh546460%28v=vs.110%29.aspx

 

 

Advertisements

java.lang.NoClassDefFoundError: org/apache/cactus/ServletTestCase

By W.ZH Dec 28 2010

 

Issue:

When I try to run my test case through servlet of ServletTestRunner from the cactus’s war file. i face this exception:

java.lang.NoClassDefFoundError: org/apache/cactus/ServletTestCase

Reason:

In fact it is very hard to find the reason fro this kind of things. We should explain how this cactus runs by class loader, then you can know what may cause this:

WEB-INF/classes CL --> WEB-INF/lib CL --> system CL

You see, the cactus WEB-INF/classes in fact should contain your test cases classes, those u write to inherit the ServletTestCase.

and all cactus related jar should be put into the WEB-INF/lib.

to make your test cases can run,you normally also has alot other jars put into the ear file top layer, bu they are outside the WEB-INF.

So there are three place u need to check:

1. WEB-INF/classes has all the test cases class.

2. WEB-INF/lib has all the test case support jar lib files.

3. Your top layer(outside the WEB-INF), do not has any test cases class. You may need to unzip all your jars to look for them.

What error I made is N0. 3!

like this :

http://mail-archives.apache.org/mod_mbox/jakarta-cactus-user/200304.mbox/%3C3EA79AD8.2080308@gmx.de%3E

Solution:

After u find the reason, I think you know how to fix this error!

Ref:

http://mail-archives.apache.org/mod_mbox/jakarta-cactus-dev/200202.mbox/%3C002901c1bb48$0332b9e0$3b22e40c@spiritedsw.com%3E

cactus usage note

By W.ZH July 2010

Note: This in fact partly learn from my colleague usage.

0. Of coz, you need know how to write test for Junit, coz this one based on that.

1. you put your code in two commenting sentences, then when u try to create test case again, your code will not be overwritten.

 // JUnitDoclet begin method **************

your code here

// JUnitDoclet end method  ****************

 

2. if u have too many test cases to write, you can create one by one, they are not depends on each other. Because you will face compile error for test method’s return if you first create a lot test cases.

3. Some times it will create some duplicate methods for you, you just need to remove that to compile.

4. cactus has Junit 3 and 4 difference for created test case, you need to notice that.

.

Selenium Best Practice

March 25 2010

Selenium Best Pratice by Tao Zhi Yaoyao

1. Never use Selenium FIT mode

Selenium分为两种运行模式,Driven Mode(现在叫Selenium Remote Control)和FIT Mode(现在叫Selenium Core)。

FIT Mode顾名思义,就是类似FIT Testing Framework那种使用方式,主要用于QA等非技术人员编写Web应用的功能测试。FIT Mode的Selenium测试使用HTML来组织测试用例。例如我要测试一个web应用的登陆功能。我可能写出这样的HTML 表格。

 1

<
table
>


 2

<
tr
>


 3
 
<
td
>
open
</
td
>


 4
        
<
td
>
http://localhost:8080/login
</
td
>


 5
        
<
td
></
td
>


 6

</
tr
>


 7

<
tr
>


 8
 
<
td
>
type
</
td
>


 9
        
<
td
>
id=username
</
td
>


10
        
<
td
>
someuser
</
td
>


11

</
tr
>


12

<
tr
>


13
 
<
td
>
type
</
td
>


14
        
<
td
>
id=password
</
td
>


15
        
<
td
>
password
</
td
>


16

</
tr
>


17

<
tr
>


18
 
<
td
>
click
</
td
>


19
        
<
td
>
id=login_button
</
td
>


20
        
<
td
></
td
>


21

</
tr
>


22

<
tr
>


23
 
<
td
>
assertTextPresent
</
td
>


24
        
<
td
>
Welcome to xxxx
</
td
>


25
        
<
td
></
td
>


26

</
tr
>


27

</
table
>

不同于FIT,Selenium内置了一系列的命令,如上例中的open, type, click以及assertTextPresent,因此QA可以完全抛开DEV独立地编写测试(FIT需要DEV提供Behavior Fixture)。因此FIT Mode是相当容易使用的,哪怕不会使用HTML的QA,也可以使用FrontPage画出三列表格,依次填入数据。

然而对于大多数team而言——尤其是敏捷team,FIT Mode平易的外表下是令人恐惧的泥沼。大多数团队往往选择使用Selenium作为功能测试和集成测试工具而不仅仅是QA测试工具,在不同的迭代间遇到功能流程或UI变化时,必须要重构Selenium测试,或者说,Functional Test Migration。令人遗憾的是,HTML based的Selenium FIT Testing的重构竟然令人难以置信的困难。我们可以使用include等Selenium FIT扩展,使得它可以重用详细的功能(Log in, Log out诸如此类)。即便如此,在一个真实的项目中,Selenium Test的数量往往在200-500之间(我目前所处的项目在改用Driven Mode前已达350+),对于这么大基数的Selenium测试,手工重构几乎是不可想象的,而目前尚没有HTML代码重构工具。即便存在泛泛意义上的HTML重构工具,对于Selenium测试重构的有效性尚待商榷。而使用Driven Mode上述代码可以写为:

1


public
 
void
 testShouldShowAWeclomeMessageAfterUserLoggedIn() 

{
2     selenium.open( http://localhost:8080/login );
3     selenium.type( id=username , someuser );
4     selenium.type( id=password password );
5     selenium.click( id=login_button );
6     assertTrue(selenium.isTextPresent( Welcome to xxxx ));
7 }

很自然,一个训练有素的程序员会重构出如下代码:

 1


public
 
void
 login(String username, String password) 

{
 2     selenium.open( http://localhost:8080/login );
 3     selenium.type( id=username ,username);
 4     selenium.type( id=password , password);
 5     selenium.click( id=login_button );
 6 }


 7


 8

public
 
void
 testShouldShowAWeclomeMessageAfterUserLoggedIn() 

{
 9     login( someuser password );
10     assertTrue(selenium.isTextPresent( Welcome to xxxx ));
11 }

之后无论是pull up到公共基类还是extact到Utils class都是很容易的事情。由于Java在代码重构上便利,Java Selenium Remote Control成为使用Selenium的最佳方式。在这一点上,纵使Ruby语法上比Java简单灵活得多,它仍不是编写Selenium测试的最佳载体(当然一个经过精心设计的ruby selenium dsl wrapper还是具有非凡的价值的,这个我们后面会涉及到)。

2. Using the name user, system, page instead of selenium

观察上面提到的代码,其中使用selenium来操纵web应用的行为,这在Remote Control里是常见的做法,但是仍然不够好,我们可以做一些小的变化以得到更好的测试:

 1


protected
 
void
 setup() 

{
 2     selenium  =    //  intialize selenium instance
 3     user  =  selenium;
 4     currentPage  =  selenium;
 5 }


 6


 7

public
 
void
 login(String username, String password) 

{
 8     user.open( http://localhost:8080/login );
 9     user.type( id=username ,username);
10     user.type( id=password , password);
11     user.click( id=login_button );
12 }


13


14

public
 
void
 testShouldShowAWeclomeMessageAfterUserLoggedIn() 

{
15     login( some guy password );
16     assertTrue(currentPage.isTextPresent( Welcome to xxxx ));
17 }

基本上这只不过是”另一种写法”而已,但是它更好的表达了”用户的行为”,如login代码所示。以及”系统的正确相应”,即currentPage.isTextPresent()。这种是典型的对编译器无意义对人有意义的代码,也就是普遍意义上好的代码。

3. Creating a DSL base on your test codes

懂得HTML的QA可以在没有DEV的帮助下使用Selenium FIT mode,然而却不能在没有DEV的帮助下使用Driven Mode。于是最自然也是最fashion的做法,就是在已有的test codes之上提供Testing DSL或者Scripting Language,让FIT mode变得更加FIT。这方面内容是一个更大的主题,以后再详细展开吧。

4. Hacking Selenium Object to support FIT command

Selenium FIT mode和RC mode下的命令有些许差异,比如FIT中的assertTextPresent,在RC中变成了isTextPresent。同样还有FIT中最实用的命令clickAndWait,在RC中变成了click和waitForPageToLoad。在RC中使用FIT mode中的命令也非难事,找到com.thoughtworks.selenium.Selenium,添加方法:


public
 
void
 doCommand(String commmand, String parameters);

然后在com.thoughtworks.selenium.DefaultSelenium中添加实现:

1


public
 
void
 doCommand(String commmand, String parameters) 

{
2    String[] paras  =   new  String[] { “” , “” , “” }
3     for  ( int  i  =   0 ; i  <  parameters.length  &&  i  <   3 ; i ++ )
4       paras[i]  =  parameters[i];
5    commandProcessor.doCommand(command, paras);
6 }

然后试验一下:


selenium.doCommand(

clickAndWait

);

在我们使用纯RC mode之前曾经用过一段中间方案,将rc code转化为fit code来跑(因为rc不支持https),由于不是真正的rc mode,像isTextPresent之类的方法都没有办法使用,只能使用FIT mode command。因此如果因为一些特殊的原因(https, chrome起不来,hta bug多等等),你没有办法使用RC mode,但是有希望得到RC可重构的好处,那么这个tricky的技巧倒是不错的选择。

5. Using chrome and IE hta lanucher to support https
6. Run test using different browser lanucher to test browser compatibility

这两个都是和browser lanucher相关的,Selenium和JWebUnit最大的不同在于它使用真实的浏览器来跑测试,从而可以更加真实地考察系统在不同浏览器中的表现。因此使用不同的浏览器lanucher来运行测试,可以更好测试应用的浏览器兼容性,这对于web 2.0应用而言是很有帮助的。此外,使用rc提供的试验性lanucher,chrome和hta可以解决跨domain测试和https的问题。不过目前hta还是有很多bug的,推荐使用chrome。当然,最希望的还是澳洲的同事可以早日在selenium里提供https支持。

Selenium Better Practice

Selenium Better Pratice

By 桃之夭夭

Selenium 是 thoughtworks公司的一个集成测试的强大工具。最近参与了一个系统移植的项目,正好用到这个工具,

把一些使用心得分享给大家,希望大家能多多使用这样的强大的,免费的工具,来保证我们的质量。

Selenium 的文档现存的不少,不过都太简单了。使用Selenium的时候,我更多的是直接去看API文档,好在API不错,

一个一个看,就能找到所需要的 🙂   官方网站:http://www.openqa.org/selenium/

好,下面进入正题!

一、Selenium 的版本

Selenium 现在存在2个版本,一个叫 selenium-core, 一个叫selenium-rc 。

selenium-core 是使用HTML的方式来编写测试脚本,你也可以使用 Selenium-IDE来录制脚本,但是目前Selenium-IDE
只有 FireFox 版本。

Selenium-RC 是 selenium-remote control 缩写,是使用具体的语言来编写测试类。

selenium-rc 支持的语言非常多,这里我们着重关注java的方式。这里讲的也主要是 selenium-rc,因为个人还是喜欢这种
方式 🙂

 二、一些准备工作

1、当然是下载 selenium 了,到 http://www.openqa.org/selenium/ 下载就可以了,记得选择selenium-rc 的版本。

2、学习一下 xpath 的知识。有个教程:http://www.zvon.org/xxl/XPathTutorial/General_chi/examples.html
     一定要学习这个,不然你根本看不懂下面的内容!

3、安装 jdk1.5

 三、selenium-rc 一些使用方法

selenium-remote-control-0.9.0\server 目录里,我们运行 java -jar selenium-server.jar
之后你就会看到一些启动信息。要使用 selenium-rc ,启动这个server 是必须的。

当然,启动的时候有许多参数,这些用法可以在网站里看看教程,不过不加参数也已经足够了。

selenium server 启动完毕了,那么我们就可以开始编写测试类了!

我们先有个概念,selenium 是模仿浏览器的行为的,当你运行测试类的时候,你就会发现selenium 会打开一个

浏览器,然后浏览器执行你的操作。

 好吧,首先生成我们的测试类:

java 代码

  1. public class TestPage2 extends TestCase {   
  2.   private Selenium selenium;   
  3.   
  4.   protected void setUp() throws Exception {   
  5.      String url = “http://xxx.xxx.xxx.xxx/yyy”;   
  6.      selenium = new DefaultSelenium(“localhost”, SeleniumServer.getDefaultPort   
  7.                                 (), “*iexplore”, url);   
  8.      selenium.start();   
  9.                
  10.      super.setUp();                        
  11.            
  12.   }   
  13.   
  14.   protected void tearDown() throws Exception {   
  15.            
  16.       selenium.stop();   
  17.       super.tearDown();   
  18.                
  19.   
  20.   }   
  21.   
  22. }  

代码十分简单,作用就是初始化一个 Selenium 对象。其中:
url : 就是你要测试的网站
localhost:  可以不是localhost,但是必须是 selenium server 启动的地址
*iexplore :  可以是其它浏览器类型,可以在网站上看都支持哪些。

下面我就要讲讲怎么使用selenium 这个对象来进行测试。

1、测试文本输入框

假设页面上有一个文本输入框,我们要测试的内容是 在其中输入一些内容,然后点击一个按钮,看看页面的是否跳转
到需要的页面。

  1. public void test1() {   
  2.            
  3.     selenium.open(“http://xxx.xxx.xxx/yyy&#8221;);   
  4.            
  5.     selenium.type(“xpath=//input[@name=’userID’]”, “test-user”);   
  6.     selenium.click(“xpath=//input[@type=’button’]”);   
  7.     selenium.waitForPageToLoad(“2000”);   
  8.     assertEquals(selenium.getTitle(), “Welcome”);   
  9. }  

上面的代码是这个意思:
1、调用 selenium.open 方法,浏览器会打开相应的页面
2、使用 type 方法来给输入框输入文字
3、等待页面载入
4、看看新的页面标题是不是我们想要的。

2、测试下拉框

java 代码

  1. public void test1() {       
  2.                
  3.     selenium.open(“http://xxx.xxx.xxx/yyy&#8221;);       
  4.                
  5.     selenium.select(“xpath=//SELECT[@name=’SBBUSYO’]”, “index=1”);   
  6.     selenium.click(“xpath=//input[@type=’button’]”);       
  7.     selenium.waitForPageToLoad(“2000”);       
  8.     assertEquals(selenium.getTitle(), “Welcome”);       
  9. }     

可以看到,我们可以使用 select 方法来确定选择下拉框中的哪个选项。
select 方法还有很多用法,具体去看看文档吧。

3、测试check box

java 代码

  1. public void test1() {           
  2.                    
  3.     selenium.open(“http://xxx.xxx.xxx/yyy&#8221;);           
  4.                    
  5.     selenium.check(“xpath=//input[@name=’MEICK_000′]”);     
  6.     selenium.click(“xpath=//input[@type=’button’]”);           
  7.     selenium.waitForPageToLoad(“2000”);           
  8.     assertEquals(selenium.getTitle(), “Welcome”);           
  9. }      

我们可以使用 check 方法来确定选择哪个radio button

4、得到文本框里的文字

java 代码

  1. assertEquals(selenium.getValue(“xpath=//input[@name=’WNO’]”), “1”);  

getValue 方法就是得到文本框里的数值,可不是 getText 方法,用错了可就郁闷了。

5、判断页面是否存在一个元素

java 代码

  1. assertTrue(selenium.isElementPresent(“xpath=//input[@name=’MEICK_000′]”));  

一般这个是用来测试当删除一些数据后,页面上有些东西就不会显示的情况。

6、判断下拉框里选择了哪个选项

java 代码

  1. assertEquals(selenium.getSelectedIndex(“xpath=//SELECT[@name=’HATIMING’]”), “1”);  

这个可以用来判断下拉框显示的选项是否是期望的选项。

7、如果有 alert 弹出对话框怎么办?

这个问题弄了挺长时间,可以这样来关闭弹出的对跨框:

java 代码

  1. if(selenium.isAlertPresent()) {   
  2.   
  3.    selenium.getAlert();   
  4.   
  5. }  

其实当调用 selenium.getAlert() 时,就会关闭 alert 弹出的对话框。
也可以使用 System.out.println(selenium.getAlert()) 来查看对跨框显示的信息。

在测试的时候,有的人会显示许多alert 来查看运行时的数据,那么我们可以用下面的方式来关闭那些 alert:

java 代码

  1. while(selenium.isAlertPresent()) {       
  2.       
  3.    selenium.getAlert();       
  4.       
  5. }   

8、如何测试一些错误消息的显示?

java 代码

  1. assertTrue(selenium.getBodyText().indexOf(“错误消息”)>=0);  

切记: getBodyText 返回的时浏览器页面上的文字,不回包含html 代码的,如果要显示html 代码,用下面这个:

java 代码

  1. System.out.println(selenium.getHtmlSource());  

以上就是最常用的几个方法了,例如 click, type, getValue 等等。
还有就是一定要学习 xpath, 其实xpath 也可以有“与、或、非”的操作:

java 代码

  1. selenium.check(“xpath=//input[(@name=’KNYKBN’)and(@value=’Y’)]”);  

四、其他

selenium 还有更多的用法,例如弹出页面等等。当面对没见过的测试要求时,我最笨的方法就是按照api文档一个一个找,
好在不多,肯定能找到。

 

 

 

使用 selenium 测试文件上传的时候就不好办了,
因为安全问题,使用 javascript 是不能修改 <input type=file>
的元素的.

如果你有幸使用firefox,那么可以设置安全权限,让selenium
可以通过 type 方法来改变 <input type=file>的值.

如果你不幸使用IE,那么目前是没有办法的

我的方法就是……

在点击最后的确认按钮之前,我先

Thread.sleep(40000);

然后用一段message提示我该手动上传文件了.
然后在40秒之内,我手动选择好上传的文件,之后就是selenium
自己做了.

这样做就无法自动测试了,不过,就算是半自动化,也能满足我的
要求了

 

 

 

测试页面中的多个输入框,你还在使用这样的方式吗:

Java代码

  

selenium.type(“xpath//input[@name=’user_name’]”,   

“”);   

selenium.click(“xpath=//input[@name=’submit’]”);   

assertTrue(selenium.getBodyText().   

    indexOf(“User Name can not be blank.”)!=-1);   

selenium.type(“xpath//input[@name=’user_name’]”,   

“abc\/def”);   

selenium.click(“xpath=//input[@name=’submit’]”);   

assertTrue(selenium.getBodyText().   

    indexOf(“User Name include wrong character.”)!=-1);  

 

selenium.type(“xpath//input[@name=’user_name’]”,

“”);

selenium.click(“xpath=//input[@name=’submit’]”);

assertTrue(selenium.getBodyText().

    indexOf(“User Name can not be blank.”)!=-1);

selenium.type(“xpath//input[@name=’user_name’]”,

“abc\/def”);

selenium.click(“xpath=//input[@name=’submit’]”);

assertTrue(selenium.getBodyText().

    indexOf(“User Name include wrong character.”)!=-1);

这是一个页面上一个输入框有效性校验的测试代码。
如果只有一个 user_name 输入框,当然很简单,但是如果有20多个,甚至 30 多个,就麻烦了!

那么,你可以参考下面的方式:

Java代码

  

String checkTextVar[] = new String[]{“user_name”,   

         “user_address”, “user_info”};   

  

for(int i = 0, m = checkTextVar.length; i < m; i++) {   

  

  checkTextValidate(checkTextVar[i]);   

  

}  

 

String checkTextVar[] = new String[]{“user_name”,

         “user_address”, “user_info”};

 

for(int i = 0, m = checkTextVar.length; i < m; i++) {

 

  checkTextValidate(checkTextVar[i]);

 

}

 

其中,checkTextValidate 可以为如下方式:

Java代码

  

private void checkTextValidate(String var) {   

  

 selenium.type(“xpath//input[@name='”+var+”‘]”,   

“”);   

selenium.click(“xpath=//input[@name=’submit’]”);   

assertTrue(selenium.getBodyText().   

    indexOf(“can not be blank.”)!=-1);   

selenium.type(“xpath//input[@name='”+var+”‘]”,   

“abc\/def”);   

selenium.click(“xpath=//input[@name=’submit’]”);   

assertTrue(selenium.getBodyText().   

    indexOf(“include wrong character.”)!=-1);   

  

  

  

}  

 

private void checkTextValidate(String var) {

 

 selenium.type(“xpath//input[@name='”+var+”‘]”,

“”);

selenium.click(“xpath=//input[@name=’submit’]”);

assertTrue(selenium.getBodyText().

    indexOf(“can not be blank.”)!=-1);

selenium.type(“xpath//input[@name='”+var+”‘]”,

“abc\/def”);

selenium.click(“xpath=//input[@name=’submit’]”);

assertTrue(selenium.getBodyText().

    indexOf(“include wrong character.”)!=-1);

 

 

 

}

 

这种方式可以免去校验好多个输入框的校验,文本,数字,日期,
都可以用这种方式。