如何从 powershell 中的命令行启动负载测试 运行?
How to launch a loadtest run from command line in powershell?
我需要能够使用 powershell
启动负载测试 运行
目前,使用以下代码
$test = "D:\LPT\abc.loadtest"
$fs = New-Object -ComObject Scripting.FileSystemObject
$f = $fs.GetFile("C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\mstest.exe")
$mstestPath = $f.shortpath
$arguments = " /testcontainer:" + $test + " /testsettings:D:\LPT\RemoteExecution.testsettings" + " /resultsfile:D:\LPT\TestResults\Results.trx"
Invoke-Expression "$mstestPath $arguments"
在 运行 之后,在 ps 控制台中显示
正在加载
D:\LPT\abc.loadtest...
Starting execution...
但在Visual studio中,在测试结果中
这样显示失败。有没有办法成功地使用 powershell + cmd 行 运行 负载测试?
使用 VS2017,PS4
最初我在某处读到说添加这个会有帮助:
[DeploymentItem("Microsoft.Practices.Prism.dll")]
添加此代码后 运行 正常,负载测试开始 运行ning 但我仍然不断收到错误
"Test Run deployment issue: The assembly or module log4net directly or indirectly referenced by the test container 'd:\lpt\bin\release\YYY.dll"
我认为问题主要在于参数的传递方式。一位同事建议 $Arguments 是一个非常敏感的变量,应该仔细编写
然后参数写得更正确,$Arguments 更改为这个,[DeploymentItem] 被删除,但即使没有这个代码片段,下面的代码也能工作:
使用 Invoke-Expression 启动 LoadTest
$FileSystem = New-Object -ComObject Scripting.FileSystemObject
$File = $FileSystem.GetFile( $MsTestPath )
$MsTestPath = $File.shortpath
$Arguments = "/testcontainer:$TestMethodPath /testsettings:$TS /resultsfile:$Res"
Invoke-Expression "$MsTestPath $Arguments"
最后,从开始到结束跟踪负载测试的更好方法是使用 Start-Process,因此下面的 代码对我和 非常有效returns 0 如果负载测试 运行 成功或任何其他值如果出现任何问题:
使用 Start-Process 启动 LoadTest
$FileSystem = New-Object -ComObject Scripting.FileSystemObject
$File = $FileSystem.GetFile( $MsTestExePath )
$MsTestPath = $File.shortpath
$Arguments = "/testcontainer:$TestMethodPath /testsettings:$TestSettingsPath /resultsfile:$ResultsFile"
$Result = ( Start-Process $MsTestExePath -ArgumentList $Arguments -NoNewWindow -Wait -PassThru )
$Result.ExitCode - provides pass/fail info
我需要能够使用 powershell
启动负载测试 运行目前,使用以下代码
$test = "D:\LPT\abc.loadtest"
$fs = New-Object -ComObject Scripting.FileSystemObject
$f = $fs.GetFile("C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\mstest.exe")
$mstestPath = $f.shortpath
$arguments = " /testcontainer:" + $test + " /testsettings:D:\LPT\RemoteExecution.testsettings" + " /resultsfile:D:\LPT\TestResults\Results.trx"
Invoke-Expression "$mstestPath $arguments"
在 运行 之后,在 ps 控制台中显示 正在加载
D:\LPT\abc.loadtest...
Starting execution...
但在Visual studio中,在测试结果中
这样显示失败。有没有办法成功地使用 powershell + cmd 行 运行 负载测试?
使用 VS2017,PS4
最初我在某处读到说添加这个会有帮助:
[DeploymentItem("Microsoft.Practices.Prism.dll")]
添加此代码后 运行 正常,负载测试开始 运行ning 但我仍然不断收到错误
"Test Run deployment issue: The assembly or module log4net directly or indirectly referenced by the test container 'd:\lpt\bin\release\YYY.dll"
我认为问题主要在于参数的传递方式。一位同事建议 $Arguments 是一个非常敏感的变量,应该仔细编写
然后参数写得更正确,$Arguments 更改为这个,[DeploymentItem] 被删除,但即使没有这个代码片段,下面的代码也能工作:
使用 Invoke-Expression 启动 LoadTest
$FileSystem = New-Object -ComObject Scripting.FileSystemObject
$File = $FileSystem.GetFile( $MsTestPath )
$MsTestPath = $File.shortpath
$Arguments = "/testcontainer:$TestMethodPath /testsettings:$TS /resultsfile:$Res"
Invoke-Expression "$MsTestPath $Arguments"
最后,从开始到结束跟踪负载测试的更好方法是使用 Start-Process,因此下面的 代码对我和 非常有效returns 0 如果负载测试 运行 成功或任何其他值如果出现任何问题:
使用 Start-Process 启动 LoadTest
$FileSystem = New-Object -ComObject Scripting.FileSystemObject
$File = $FileSystem.GetFile( $MsTestExePath )
$MsTestPath = $File.shortpath
$Arguments = "/testcontainer:$TestMethodPath /testsettings:$TestSettingsPath /resultsfile:$ResultsFile"
$Result = ( Start-Process $MsTestExePath -ArgumentList $Arguments -NoNewWindow -Wait -PassThru )
$Result.ExitCode - provides pass/fail info