feat: NewSummary, NewCaseSummary

This commit is contained in:
lilong.129
2024-09-02 22:33:01 +08:00
parent 4d43274d2b
commit 73e5c0acf6
4 changed files with 100 additions and 62 deletions
+6 -36
View File
@@ -201,7 +201,7 @@ func (r *HRPRunner) Run(testcases ...ITestCase) (err error) {
}()
// record execution data to summary
s := newOutSummary()
s := NewSummary()
// load all testcases
testCases, err := LoadTestCases(testcases...)
@@ -242,7 +242,7 @@ func (r *HRPRunner) Run(testcases ...ITestCase) (err error) {
// each run has its own session runner
sessionRunner := caseRunner.NewSession()
caseSummary, err := sessionRunner.Start(it.Next())
s.appendCaseSummary(caseSummary)
s.AddCaseSummary(caseSummary)
if err != nil {
log.Error().Err(err).Msg("[Run] run testcase failed")
runErr = err
@@ -257,14 +257,14 @@ func (r *HRPRunner) Run(testcases ...ITestCase) (err error) {
// save summary
if r.saveTests {
if err := s.genSummary(); err != nil {
if err := s.GenSummary(); err != nil {
return err
}
}
// generate HTML report
if r.genHTMLReport {
if err := s.genHTMLReport(); err != nil {
if err := s.GenHTMLReport(); err != nil {
return err
}
}
@@ -414,7 +414,7 @@ func (r *CaseRunner) NewSession() *SessionRunner {
sessionRunner := &SessionRunner{
caseRunner: r,
sessionVariables: make(map[string]interface{}),
summary: newSummary(),
summary: NewCaseSummary(),
transactions: make(map[string]map[transactionType]time.Time),
ws: newWSSession(),
@@ -538,7 +538,7 @@ func (r *SessionRunner) Start(givenVars map[string]interface{}) (summary *TestCa
stepResult.Name = stepName + loopIndex
stepResult.StartTime = startTime
r.updateSummary(stepResult)
r.summary.AddStepResult(stepResult)
}
// update extracted variables
@@ -657,33 +657,3 @@ func (r *SessionRunner) IgnorePopup() bool {
}
return false
}
// updateSummary updates summary of StepResult.
func (r *SessionRunner) updateSummary(stepResult *StepResult) {
switch stepResult.StepType {
case stepTypeTestCase:
// record requests of testcase step
if records, ok := stepResult.Data.([]*StepResult); ok {
for _, result := range records {
r.addSingleStepResult(result)
}
} else {
r.addSingleStepResult(stepResult)
}
default:
r.addSingleStepResult(stepResult)
}
}
func (r *SessionRunner) addSingleStepResult(stepResult *StepResult) {
// update summary
r.summary.Records = append(r.summary.Records, stepResult)
r.summary.Stat.Total += 1
if stepResult.Success {
r.summary.Stat.Successes += 1
} else {
r.summary.Stat.Failures += 1
// update summary result to failed
r.summary.Success = false
}
}