如何在不为每个函数运行新的浏览器窗口的情况下运行PHPUnit Selenium测试?

发布于 2021-02-01 11:27:29

我正在尝试使用PHPUnit运行selenium测试用例。我要做的第一件事就是尝试登录功能,它可以完美运行,但是我想运行一个功能来检查登录后页面上的信息,但是它将打开一个新的浏览器,而不是在当前浏览器窗口中继续。这是一个问题,原因是该页面设置为在关闭窗口时删除登录身份验证,因此,如果使用$
this->
url()转到该页面,则会出现我需要登录的错误。这是我现在的代码,它启动浏览器并运行测试登录表单的功能,然后关闭浏览器,打开一个新的浏览器并运行链接检查。当然,由于关闭窗口,因此由于身份验证错误而导致错误。我可以在一个函数中运行所有测试,但这确实是草率的编码,我想避免这种情况。有人知道如何解决吗?

<?php
    class TestMyTest extends PHPUnit_Extensions_Selenium2TestCase {
        public function setUp()
        {
            $this->setBrowser("firefox");
            $this->setBrowserUrl("https://**************************");
        }

        public function testLoginForm()
        {

            $this->url("login.php");
            $this->byLinkText('Forgot your password?');
            $form = $this->byCssSelector('form');
            $this->byName('username')->value('test');
            $this->byName('password')->value('1234');
            $form->submit();
        }


        public function testCheckForMainMenueLinks ()
        {
            $this->url("index.php");
            $this->byLinkText('Home');
            $this->byLinkText('Products');
            $this->byLinkText('About us');
            $this->byLinkText('Contact');
        }
    }
?>
关注者
0
被浏览
83
1 个回答
  • 面试哥
    面试哥 2021-02-01
    为面试而生,有面试问题,就找面试哥。

    Okej,所以我想您可以直接从另一个函数中调用该函数,如下所示:

    public function testOne
    {
    #code
    $this->Two();
    }
    
    public function Two()
    {
    #code
    $this->Three();
    }
    
    public function Three()
    {
    #code
    }
    

    依此类推,这将在没有新浏览器的情况下运行下一个功能,但是,如果在任何测试中的任何地方失败,则整个测试将停止,因此反馈不会像单个测试那样好。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看