Selenium Test - 跨多个测试运行保留会话

时间:2011-03-08 08:47:33

标签: session selenium selenium-rc

我有以下问题。当我开始我的selenium测试时,为了进入实际测试的部分,我需要启动浏览器,登录,执行其他操作,然后它就是我要测试的部分。

有没有办法只做一次第一部分,让会话和浏览器保持打开状态。并且对于下一个测试运行仅继续此会话,而不启动。

所以基本上我会进行测试初始化​​,并使会话保持打开状态。 以及使用此初始化会话的其他测试,每次都重用会话。

我正在使用Java和Selenium RC。

谢谢!

3 个答案:

答案 0 :(得分:1)

这取决于你的环境。我使用C#和Selenium RC(因此使用NUnit测试框架)。由于您使用Java(可能是JUnit),因此它的工作方式相同。 JUnit和NUnit都允许您指定在每次测试之前,每次测试之后,每个套件之前或每个套件之后执行的特殊代码。

在您的情况下,您希望提供在套件之前运行的代码(套件只是一个命名空间(C#)或类(Java)中所有测试用例的集合)。在C#中我使用这样的代码 - [TextFixtureSetUp]指令让NUnit将其识别为套件设置代码。

   [TestFixtureSetUp]
    public void SetupTest()
    {
        selenium = Setup.StartSelenium();
        Setup.Login();
        Setup.Preliminaries();
    }

Java中的等效名称是使用

中的@BeforeClass属性
public class Example {
    @BeforeClass
    public static void onlyOnce() {
       ...
    }
 }

我最近的文章Web Testing with Selenium Sushi: A Practical Guide and Toolset非常关注C#,但它可能会为您提供一些可以应用于Java工作的一般性想法。

答案 1 :(得分:0)

我建议使用testng,它允许你使用java注释进行预处理,比如分别在使用@BeforeClass,@ BeforeSuite的类或测试套件之前调用某段代码。 在这里你可以定义selenium服务器实例化,浏览器调用要么在一类测试套件之前完成(还有许多其他选项也可用),然后这可以在后续的测试方法中重用。

答案 2 :(得分:0)

在一行中: 您可以使用firefox配置文件。

详细信息: 1.手动登录firefox(如果有的话,使用,记住我的网站选项。否则应该没问题) 2.转到Firefox菜单>帮助>故障排除信息>配置文件夹(单击它)。 3.当你调用selenium webdriver(虽然不确定RC)时,请使用此

     sslCAInfo = C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt

这样您就可以直接登录到自己的帐户。与新鲜的firefox配置文件

不同,从浏览器缓存中选取的数据也更快