Selenium:从命令提示符执行测试套件时,不考虑测试用例中的存储变量

时间:2011-07-21 05:26:07

标签: selenium selenium-rc selenium-ide selenium-webdriver

我有一个包含3个测试用例的测试套件,其中第一个测试用例包含其他2个测试用例中所需的所有变量(类似于测试套件的数据集)

所有这些当我在selenium IDE中执行测试套件(在IDE中手动加载测试套件然后运行)时,一切都很好。

但是我想要一个测试用例执行的报告,所以现在我使用下面的命令来执行测试用例 java -jar“selenium-server jar path”-htmlSuite“* firefox”“baseurl”“TestSuite path”“结果文件路径”

现在的问题是从命令propmt执行测试套件,第一个测试用例中存储的变量,第二个测试用例中没有考虑等等。

所以有人可以帮我解决这个问题。

3 个答案:

答案 0 :(得分:2)

开放存档:selenium-server.jar \ core \ scripts \ 找到selenium-testrunner.js 查找并删除文件中的下一个代码:

storedVars = new Object();
        storedVars.nbsp = String.fromCharCode(160);
        storedVars.space = ' ';

答案 1 :(得分:1)

此问题是一个已知错误。因此,您需要打开selenium-server.jar或rc jar,就像7zip(我使用的)一样,找到以下文件:

selenium-server.jar\core\scripts\selenium-testrunner.js.

7zip将允许您即时更新,您需要做的只是移动以下代码:

storedVars = new Object();
storedVars.nbsp = String.fromCharCode(160);
storedVars.space = ' ';

从函数startTest的开头到startTestSuite函数的开头。

只需移动存储变量对象的初始化位置。

注意当你选择在7zip中编辑它会在记事本中打开,你会看到代码没有格式化,所以复制它并用记事本++或其他东西打开它,然后粘贴回来改变并保存。

如果您在Windows上执行此操作,也可能会出现问题,因为在RC jar的根目录中有一个名为“license”的目录和一个名为“LICENSE”的文件,而糟糕的窗口将此标识为重复文件,因此在做上面所说的所有事情之前,将文件'LICENSE'的名称更改为'LICENSE_FILE'。

答案 2 :(得分:0)

我在基于java的代码中解决了这个问题:

public class ExampleTest{ //main class of all testmodels

private static String valueIneedToBeSendToAllTests;

@Test
  public void test1(){
    // steps of test
    String result = driver.webelement().getText();
    setMyValue(result);
  }

 @Test 
 public void test2(){
    // steps of test
    String whatWasTheTextAgain = getMyValue();

  }


public String getMyValue(){
   return valueIneedToBeSendToAllTests;

  }

public void setMyValue(String valueToSet){
  this.valueIneedToBeSendToAllTests = valueToSet;

 }


}

重复一遍:

  • 我需要保留的值是私有和静态
  • 此值为主类的值,而不是测试之一
  • 该值包含setter和getter。在其他方面,它正在为我崩溃