Php 如何区分同一测试的每个实例 我想要实现什么?

Php 如何区分同一测试的每个实例 我想要实现什么?,php,codeception,Php,Codeception,我做了一个测试,登录到一个web应用程序,完成一个测试并提交它。 由于我正在模拟多个用户进行测试,以测试服务器可以处理多少用户,因此我需要一种方法来告诉测试的每个实例,以选择不同的用户登录 目前,我正在尝试将凭据存储在文本文件中,在执行测试之前,请确保从文件中获取一对凭据并删除该行,但我不确定这是否是最可行的方法 这是我编写的代码(在测试本身内部): 运行此命令会导致以下错误: [PHPUnit\Framework\Exception] explode() expects parameter 2

我做了一个测试,登录到一个web应用程序,完成一个测试并提交它。 由于我正在模拟多个用户进行测试,以测试服务器可以处理多少用户,因此我需要一种方法来告诉测试的每个实例,以选择不同的用户登录

目前,我正在尝试将凭据存储在文本文件中,在执行测试之前,请确保从文件中获取一对凭据并删除该行,但我不确定这是否是最可行的方法

这是我编写的代码(在测试本身内部):

运行此命令会导致以下错误:

[PHPUnit\Framework\Exception] explode() expects parameter 2 to be string, object given
这是存储凭据的txt文件:

008C108:8706405
008C408:1776723
008B108:9315051
这是我的机器人文件:

require_once 'vendor/autoload.php';

class RoboFile extends \Robo\Tasks
{
    use \Codeception\Task\MergeReports;
    use \Codeception\Task\SplitTestsByGroups;

    public function parallelSplitTests()
    {
        // Split your tests by files
        $this->taskSplitTestFilesByGroups(5)
            ->projectRoot('.')
            ->testsFrom('tests/acceptance')
            ->groupsTo('tests/_data/paracept_')
            ->run();
    }

    public function parallelRun()
    {
        $parallel = $this->taskParallelExec();

            for ($i = 1; $i <= 12; $i++) {

                $parallel->process(
                $this->taskCodecept() // use built-in Codecept task
                    ->suite('acceptance') // run acceptance tests
                    ->group("paracept_$i") // for all paracept_* groups
                    ->xml("tests/_log/result_$i.xml") // save XML results
                );
            }

    return $parallel->run();
    }

    public function parallelMergeResults()
    {
          $merge = $this->taskMergeXmlReports();
        for ($i=1; $i<=5; $i++) {
            $merge->from("tests/_output/result_paracept_$i.xml");
        }
        $merge->into("tests/_output/result_paracept.xml")->run();
    }
}
require_once'vendor/autoload.php';
类RoboFile扩展\Robo\Tasks
{
使用\Codeception\Task\MergeReports;
使用\Codeception\Task\SplitTestsByGroups;
公共函数测试()
{
//按文件分割测试
$this->taskSplitTestFilesByGroups(5)
->projectRoot('.'))
->测试来源(“测试/验收”)
->groupsTo('测试/数据/辅助概念')
->run();
}
公共函数parallelRun()
{
$parallel=$this->taskParallelExec();
对于($i=1;$i进程)(
$this->taskCodecept()//使用内置的Codecept任务
->suite('acceptance')//运行验收测试
->组(“paracept_u$i”)//对于所有paracept_*group
->xml(“tests/_log/result\$i.xml”)//保存xml结果
);
}
返回$parallel->run();
}
公共函数结果()
{
$merge=$this->taskMergeXmlReports();
对于($i=1;$ifrom(“tests/\u output/result\u paracept\u$i.xml”);
}
$merge->into(“tests/_output/result_paracept.xml”)->run();
}
}

这只是我的想法,但我不知道这是否是最好的方法。

使用literal eval命令将计数器放在每个新用户名实例的名称中,使其通用。@NikolaLukic对不起,你能解释一下你的意思吗?我会研究一下,谢谢你的回答@NikolaLukicCodeception不是一个负载测试工具,请使用JMeter或Gattling或其他更适合此工作的工具。在每个新用户名实例的名称中使用literal eval命令put counter使其通用。@NikolaLukic对不起,你能解释一下你的意思吗?我会研究一下,谢谢你的回答@NikolaLukicCodeception不是负载测试工具,请使用JMeter或Gatling或其他工具她的工具更适合这份工作。
require_once 'vendor/autoload.php';

class RoboFile extends \Robo\Tasks
{
    use \Codeception\Task\MergeReports;
    use \Codeception\Task\SplitTestsByGroups;

    public function parallelSplitTests()
    {
        // Split your tests by files
        $this->taskSplitTestFilesByGroups(5)
            ->projectRoot('.')
            ->testsFrom('tests/acceptance')
            ->groupsTo('tests/_data/paracept_')
            ->run();
    }

    public function parallelRun()
    {
        $parallel = $this->taskParallelExec();

            for ($i = 1; $i <= 12; $i++) {

                $parallel->process(
                $this->taskCodecept() // use built-in Codecept task
                    ->suite('acceptance') // run acceptance tests
                    ->group("paracept_$i") // for all paracept_* groups
                    ->xml("tests/_log/result_$i.xml") // save XML results
                );
            }

    return $parallel->run();
    }

    public function parallelMergeResults()
    {
          $merge = $this->taskMergeXmlReports();
        for ($i=1; $i<=5; $i++) {
            $merge->from("tests/_output/result_paracept_$i.xml");
        }
        $merge->into("tests/_output/result_paracept.xml")->run();
    }
}