mirror of
https://github.com/httprunner/httprunner.git
synced 2026-07-12 16:01:27 +08:00
fix: quit plugin
This commit is contained in:
@@ -61,6 +61,15 @@ func (b *HRPBoomer) Run(testcases ...ITestCase) {
|
|||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// quit all plugins
|
||||||
|
defer func() {
|
||||||
|
if len(pluginMap) > 0 {
|
||||||
|
for _, plugin := range pluginMap {
|
||||||
|
plugin.Quit()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
|
||||||
for _, testcase := range testCases {
|
for _, testcase := range testCases {
|
||||||
rendezvousList := initRendezvous(testcase, int64(b.GetSpawnCount()))
|
rendezvousList := initRendezvous(testcase, int64(b.GetSpawnCount()))
|
||||||
task := b.convertBoomerTask(testcase, rendezvousList)
|
task := b.convertBoomerTask(testcase, rendezvousList)
|
||||||
@@ -71,12 +80,6 @@ func (b *HRPBoomer) Run(testcases ...ITestCase) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (b *HRPBoomer) Quit() {
|
func (b *HRPBoomer) Quit() {
|
||||||
b.pluginsMutex.Lock()
|
|
||||||
plugins := b.plugins
|
|
||||||
b.pluginsMutex.Unlock()
|
|
||||||
for _, plugin := range plugins {
|
|
||||||
plugin.Quit()
|
|
||||||
}
|
|
||||||
b.Boomer.Quit()
|
b.Boomer.Quit()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3,10 +3,8 @@ package hrp
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
"os/signal"
|
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"strings"
|
"strings"
|
||||||
"syscall"
|
|
||||||
|
|
||||||
"github.com/httprunner/funplugin"
|
"github.com/httprunner/funplugin"
|
||||||
"github.com/httprunner/funplugin/fungo"
|
"github.com/httprunner/funplugin/fungo"
|
||||||
@@ -79,14 +77,6 @@ func initPlugin(path, venv string, logOn bool) (plugin funplugin.IPlugin, err er
|
|||||||
// add plugin instance to plugin map
|
// add plugin instance to plugin map
|
||||||
pluginMap[pluginPath] = plugin
|
pluginMap[pluginPath] = plugin
|
||||||
|
|
||||||
// catch Interrupt and SIGTERM signals to ensure plugin quitted
|
|
||||||
c := make(chan os.Signal)
|
|
||||||
signal.Notify(c, os.Interrupt, syscall.SIGTERM)
|
|
||||||
go func() {
|
|
||||||
<-c
|
|
||||||
plugin.Quit()
|
|
||||||
}()
|
|
||||||
|
|
||||||
// report event for initializing plugin
|
// report event for initializing plugin
|
||||||
event := sdk.EventTracking{
|
event := sdk.EventTracking{
|
||||||
Category: "InitPlugin",
|
Category: "InitPlugin",
|
||||||
|
|||||||
@@ -184,6 +184,15 @@ func (r *HRPRunner) Run(testcases ...ITestCase) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// quit all plugins
|
||||||
|
defer func() {
|
||||||
|
if len(pluginMap) > 0 {
|
||||||
|
for _, plugin := range pluginMap {
|
||||||
|
plugin.Quit()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
|
||||||
var runErr error
|
var runErr error
|
||||||
// run testcase one by one
|
// run testcase one by one
|
||||||
for _, testcase := range testCases {
|
for _, testcase := range testCases {
|
||||||
@@ -192,11 +201,6 @@ func (r *HRPRunner) Run(testcases ...ITestCase) error {
|
|||||||
log.Error().Err(err).Msg("[Run] init session runner failed")
|
log.Error().Err(err).Msg("[Run] init session runner failed")
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
defer func() {
|
|
||||||
if sessionRunner.parser.plugin != nil {
|
|
||||||
sessionRunner.parser.plugin.Quit()
|
|
||||||
}
|
|
||||||
}()
|
|
||||||
|
|
||||||
for it := sessionRunner.parametersIterator; it.HasNext(); {
|
for it := sessionRunner.parametersIterator; it.HasNext(); {
|
||||||
err = sessionRunner.Start(it.Next())
|
err = sessionRunner.Start(it.Next())
|
||||||
|
|||||||
Reference in New Issue
Block a user