Merge branch 'main' of github.com:httprunner/hrp

Change-Id: I3989c88355fe3d70f4753e737e0d0dd4c059c9eb
This commit is contained in:
buyuxiang
2022-02-14 14:41:38 +08:00
4 changed files with 34 additions and 17 deletions

View File

@@ -313,4 +313,4 @@ func TestCaseDemo(t *testing.T) {
[examples]: https://github.com/httprunner/hrp/blob/main/examples/
[CHANGELOG]: docs/CHANGELOG.md
[pushgateway]: https://github.com/prometheus/pushgateway
[survey]: https://wenjuan.feishu.cn/m?t=sVRvigY12Szi-gbbo
[survey]: https://wj.qq.com/s2/9699514/0d19/

View File

@@ -235,6 +235,7 @@
<a class="close" href="#record_{{$suite_index}}_{{$loop_index}}">&times;</a>
<div class="content">
<h3>Name: {{ .Name }}</h3>
{{- if .Data}}
<h3>Request:</h3>
<div style="overflow: auto">
<table>
@@ -332,8 +333,8 @@
</tr>
</table>
</div>
</div>
{{- end }}
</div>
</div>
</div>

View File

@@ -225,23 +225,25 @@ func (r *caseRunner) run() error {
r.startTime = time.Now()
for index := range r.TestCase.TestSteps {
stepData, err := r.runStep(index, config)
if err != nil {
if r.hrpRunner.failfast {
return errors.Wrap(err, "abort running due to failfast setting")
stepDataObj, err := r.runStep(index, config)
if stepDataObj == nil {
stepDataObj = &stepData{
Name: r.TestCase.TestSteps[index].Name(),
Success: false,
}
}
if stepData != nil {
if err != nil {
stepData.Attachment = err.Error()
}
r.summary.Records = append(r.summary.Records, stepData)
r.summary.Success = r.summary.Success && stepData.Success
r.summary.Stat.Total += 1
if stepData.Success {
r.summary.Stat.Successes += 1
} else {
r.summary.Stat.Failures += 1
r.summary.Records = append(r.summary.Records, stepDataObj)
r.summary.Success = r.summary.Success && stepDataObj.Success
r.summary.Stat.Total += 1
if stepDataObj.Success {
r.summary.Stat.Successes += 1
} else {
r.summary.Stat.Failures += 1
}
if err != nil {
stepDataObj.Attachment = err.Error()
if r.hrpRunner.failfast {
return errors.Wrap(err, "abort running due to failfast setting")
}
}
}
@@ -602,6 +604,7 @@ func (r *caseRunner) runStepRequest(step *TStep) (stepResult *stepData, err erro
Proto: "HTTP/1.1",
ProtoMajor: 1,
ProtoMinor: 1,
Close: true, // prevent the connection from being re-used
}
// prepare request headers

View File

@@ -123,6 +123,19 @@ func TestInitRendezvous(t *testing.T) {
func TestGenHTMLReport(t *testing.T) {
summary := newOutSummary()
caseSummary1 := newSummary()
caseSummary2 := newSummary()
stepResult1 := &stepData{}
stepResult2 := &stepData{
Name: "Test",
StepType: stepTypeRequest,
Success: false,
ContentSize: 0,
Attachment: "err",
}
caseSummary1.Records = []*stepData{stepResult1, stepResult2, nil}
summary.appendCaseSummary(caseSummary1)
summary.appendCaseSummary(caseSummary2)
err := genHTMLReport(summary)
if err != nil {
t.Error(err)