我有一个包含3个测试用例的测试套件,其中第一个测试用例包含其他2个测试用例中所需的所有变量(类似于测试套件的数据集)
所有这些当我在selenium IDE中执行测试套件(在IDE中手动加载测试套件然后运行)时,一切都很好。
但是我想要一个测试用例执行的报告,所以现在我使用下面的命令来执行测试用例
java -jar“selenium-server jar path”-htmlSuite“* firefox”“baseurl”“TestSuite path”“结果文件路径”
现在的问题是从命令propmt执行测试套件,第一个测试用例中存储的变量,第二个测试用例中没有考虑等等。
所以有人可以帮我解决这个问题。
答案 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;
}
}
重复一遍: