release v4.3.0

This commit is contained in:
debugtalk
2022-10-21 22:22:00 +08:00
parent 1f7737d0e7
commit be523eda0c
30 changed files with 53 additions and 35 deletions
+2 -1
View File
@@ -1,10 +1,11 @@
# Release History # Release History
## v4.3.0 (2022-10-16) ## v4.3.0 (2022-10-21)
- feat: support iOS UI automation with [WebDriverAgent] - feat: support iOS UI automation with [WebDriverAgent]
- feat support Android UI automation with [uiautomator2] - feat support Android UI automation with [uiautomator2]
- feat: integrage ios device management with [gidevice] - feat: integrage ios device management with [gidevice]
- feat: add specified exit code for different exceptions
- refactor: make boomer/uixt/httpstat as sub package - refactor: make boomer/uixt/httpstat as sub package
## v4.2.1 (2022-09-01) ## v4.2.1 (2022-09-01)
+1 -1
View File
@@ -41,4 +41,4 @@ Copyright 2017 debugtalk
* [hrp traceroute](hrp_traceroute.md) - run integrated traceroute command * [hrp traceroute](hrp_traceroute.md) - run integrated traceroute command
* [hrp wiki](hrp_wiki.md) - visit https://httprunner.com * [hrp wiki](hrp_wiki.md) - visit https://httprunner.com
###### Auto generated by spf13/cobra on 21-Aug-2022 ###### Auto generated by spf13/cobra on 21-Oct-2022
+2 -1
View File
@@ -44,6 +44,7 @@ hrp boom [flags]
--profile string profile for load testing --profile string profile for load testing
--prometheus-gateway string Prometheus Pushgateway url. --prometheus-gateway string Prometheus Pushgateway url.
--request-increase-rate string Request increase rate, disabled by default. (default "-1") --request-increase-rate string Request increase rate, disabled by default. (default "-1")
--run-time int Stop after the specified amount of time(s), Only used --autostart. Defaults to run forever.
--spawn-count int The number of users to spawn for load testing (default 1) --spawn-count int The number of users to spawn for load testing (default 1)
--spawn-rate float The rate for spawning users (default 1) --spawn-rate float The rate for spawning users (default 1)
--worker worker of distributed testing --worker worker of distributed testing
@@ -54,4 +55,4 @@ hrp boom [flags]
* [hrp](hrp.md) - Next-Generation API Testing Solution. * [hrp](hrp.md) - Next-Generation API Testing Solution.
* [hrp boom curl](hrp_boom_curl.md) - run load test with curl command * [hrp boom curl](hrp_boom_curl.md) - run load test with curl command
###### Auto generated by spf13/cobra on 21-Aug-2022 ###### Auto generated by spf13/cobra on 21-Oct-2022
+1 -1
View File
@@ -16,4 +16,4 @@ hrp boom curl URLs [flags]
* [hrp boom](hrp_boom.md) - run load test with boomer * [hrp boom](hrp_boom.md) - run load test with boomer
###### Auto generated by spf13/cobra on 21-Aug-2022 ###### Auto generated by spf13/cobra on 21-Oct-2022
+1 -1
View File
@@ -28,4 +28,4 @@ hrp build $path ... [flags]
* [hrp](hrp.md) - Next-Generation API Testing Solution. * [hrp](hrp.md) - Next-Generation API Testing Solution.
###### Auto generated by spf13/cobra on 21-Aug-2022 ###### Auto generated by spf13/cobra on 21-Oct-2022
+1 -1
View File
@@ -23,4 +23,4 @@ hrp convert $path... [flags]
* [hrp](hrp.md) - Next-Generation API Testing Solution. * [hrp](hrp.md) - Next-Generation API Testing Solution.
* [hrp convert curl](hrp_convert_curl.md) - convert curl command to httprunner testcase * [hrp convert curl](hrp_convert_curl.md) - convert curl command to httprunner testcase
###### Auto generated by spf13/cobra on 21-Aug-2022 ###### Auto generated by spf13/cobra on 21-Oct-2022
+1 -1
View File
@@ -16,4 +16,4 @@ hrp convert curl URLs [flags]
* [hrp convert](hrp_convert.md) - convert to JSON/YAML/gotest/pytest testcases * [hrp convert](hrp_convert.md) - convert to JSON/YAML/gotest/pytest testcases
###### Auto generated by spf13/cobra on 21-Aug-2022 ###### Auto generated by spf13/cobra on 21-Oct-2022
+1 -1
View File
@@ -16,4 +16,4 @@ hrp curl $url [flags]
* [hrp](hrp.md) - Next-Generation API Testing Solution. * [hrp](hrp.md) - Next-Generation API Testing Solution.
###### Auto generated by spf13/cobra on 21-Aug-2022 ###### Auto generated by spf13/cobra on 21-Oct-2022
+1 -1
View File
@@ -26,4 +26,4 @@ hrp dns $url [flags]
* [hrp](hrp.md) - Next-Generation API Testing Solution. * [hrp](hrp.md) - Next-Generation API Testing Solution.
###### Auto generated by spf13/cobra on 21-Aug-2022 ###### Auto generated by spf13/cobra on 21-Oct-2022
+1 -1
View File
@@ -20,4 +20,4 @@ hrp ping $url [flags]
* [hrp](hrp.md) - Next-Generation API Testing Solution. * [hrp](hrp.md) - Next-Generation API Testing Solution.
###### Auto generated by spf13/cobra on 21-Aug-2022 ###### Auto generated by spf13/cobra on 21-Oct-2022
+1 -1
View File
@@ -16,4 +16,4 @@ hrp pytest $path ... [flags]
* [hrp](hrp.md) - Next-Generation API Testing Solution. * [hrp](hrp.md) - Next-Generation API Testing Solution.
###### Auto generated by spf13/cobra on 21-Aug-2022 ###### Auto generated by spf13/cobra on 21-Oct-2022
+1 -1
View File
@@ -36,4 +36,4 @@ hrp run $path... [flags]
* [hrp](hrp.md) - Next-Generation API Testing Solution. * [hrp](hrp.md) - Next-Generation API Testing Solution.
* [hrp run curl](hrp_run_curl.md) - run API test with curl command * [hrp run curl](hrp_run_curl.md) - run API test with curl command
###### Auto generated by spf13/cobra on 21-Aug-2022 ###### Auto generated by spf13/cobra on 21-Oct-2022
+1 -1
View File
@@ -16,4 +16,4 @@ hrp run curl URLs [flags]
* [hrp run](hrp_run.md) - run API test with go engine * [hrp run](hrp_run.md) - run API test with go engine
###### Auto generated by spf13/cobra on 21-Aug-2022 ###### Auto generated by spf13/cobra on 21-Oct-2022
+1 -1
View File
@@ -21,4 +21,4 @@ hrp startproject $project_name [flags]
* [hrp](hrp.md) - Next-Generation API Testing Solution. * [hrp](hrp.md) - Next-Generation API Testing Solution.
###### Auto generated by spf13/cobra on 21-Aug-2022 ###### Auto generated by spf13/cobra on 21-Oct-2022
+1 -1
View File
@@ -19,4 +19,4 @@ hrp traceroute $url [flags]
* [hrp](hrp.md) - Next-Generation API Testing Solution. * [hrp](hrp.md) - Next-Generation API Testing Solution.
###### Auto generated by spf13/cobra on 21-Aug-2022 ###### Auto generated by spf13/cobra on 21-Oct-2022
+1 -1
View File
@@ -16,4 +16,4 @@ hrp wiki [flags]
* [hrp](hrp.md) - Next-Generation API Testing Solution. * [hrp](hrp.md) - Next-Generation API Testing Solution.
###### Auto generated by spf13/cobra on 21-Aug-2022 ###### Auto generated by spf13/cobra on 21-Oct-2022
+2 -2
View File
@@ -1,5 +1,5 @@
{ {
"project_name": "demo-empty-project", "project_name": "demo-empty-project",
"create_time": "2022-07-11T11:45:29.942532+08:00", "create_time": "2022-10-21T21:54:56.252853+08:00",
"hrp_version": "v4.1.6" "hrp_version": "v4.3.0"
} }
+1 -1
View File
@@ -1,5 +1,5 @@
{ {
"project_name": "demo-with-go-plugin", "project_name": "demo-with-go-plugin",
"create_time": "2022-09-28T16:40:14.674398+08:00", "create_time": "2022-10-21T21:52:38.979867+08:00",
"hrp_version": "v4.3.0" "hrp_version": "v4.3.0"
} }
+1 -1
View File
@@ -1,5 +1,5 @@
{ {
"project_name": "demo-with-py-plugin", "project_name": "demo-with-py-plugin",
"create_time": "2022-09-28T16:40:15.283869+08:00", "create_time": "2022-10-21T21:52:39.555851+08:00",
"hrp_version": "v4.3.0" "hrp_version": "v4.3.0"
} }
+2 -2
View File
@@ -1,5 +1,5 @@
{ {
"project_name": "demo-without-plugin", "project_name": "demo-without-plugin",
"create_time": "2022-07-11T11:45:29.800018+08:00", "create_time": "2022-10-21T21:54:56.136458+08:00",
"hrp_version": "v4.1.6" "hrp_version": "v4.3.0"
} }
+9 -3
View File
@@ -251,13 +251,19 @@ func LoadFile(path string, structObj interface{}) (err error) {
decoder := json.NewDecoder(bytes.NewReader(file)) decoder := json.NewDecoder(bytes.NewReader(file))
decoder.UseNumber() decoder.UseNumber()
err = decoder.Decode(structObj) err = decoder.Decode(structObj)
err = errors.Wrap(code.LoadJSONError, err.Error()) if err != nil {
err = errors.Wrap(code.LoadJSONError, err.Error())
}
case ".yaml", ".yml": case ".yaml", ".yml":
err = yaml.Unmarshal(file, structObj) err = yaml.Unmarshal(file, structObj)
err = errors.Wrap(code.LoadYAMLError, err.Error()) if err != nil {
err = errors.Wrap(code.LoadYAMLError, err.Error())
}
case ".env": case ".env":
err = parseEnvContent(file, structObj) err = parseEnvContent(file, structObj)
err = errors.Wrap(code.LoadEnvError, err.Error()) if err != nil {
err = errors.Wrap(code.LoadEnvError, err.Error())
}
default: default:
err = code.UnsupportedFileExtension err = code.UnsupportedFileExtension
} }
+5
View File
@@ -134,6 +134,11 @@ var errorsMap = map[error]int{
OCRTextNotFoundError: 84, OCRTextNotFoundError: 84,
} }
func IsErrorPredefined(err error) bool {
_, ok := errorsMap[err]
return ok
}
func GetErrorCode(err error) (exitCode int) { func GetErrorCode(err error) (exitCode int) {
if err == nil { if err == nil {
return Success return Success
@@ -1,4 +1,4 @@
# NOTE: Generated By hrp v4.2.0, DO NOT EDIT! # NOTE: Generated By hrp v4.3.0, DO NOT EDIT!
import sys import sys
import os import os
@@ -10,6 +10,7 @@ from debugtalk import *
if __name__ == "__main__": if __name__ == "__main__":
import funppy import funppy
funppy.register("get_user_agent", get_user_agent) funppy.register("get_user_agent", get_user_agent)
funppy.register("sleep", sleep) funppy.register("sleep", sleep)
funppy.register("sum", sum) funppy.register("sum", sum)
@@ -1,4 +1,4 @@
// NOTE: Generated By hrp v4.3.0-beta-10172144, DO NOT EDIT! // NOTE: Generated By hrp v4.3.0, DO NOT EDIT!
package main package main
import ( import (
+1 -1
View File
@@ -1 +1 @@
v4.3.0-beta-10211541 v4.3.0
+1 -2
View File
@@ -53,8 +53,7 @@ func LoadTestCases(iTestCases ...ITestCase) ([]*TestCase, error) {
testCasePath := TestCasePath(path) testCasePath := TestCasePath(path)
tc, err := testCasePath.ToTestCase() tc, err := testCasePath.ToTestCase()
if err != nil { if err != nil {
log.Warn().Err(err).Str("path", path).Msg("load testcase failed") return nil
return err
} }
testCases = append(testCases, tc) testCases = append(testCases, tc)
return nil return nil
+1 -1
View File
@@ -84,7 +84,7 @@ func (dExt *DriverExt) SwipeUntil(direction interface{}, findCondition Action, f
} }
} else if d, ok := direction.([]float64); ok { } else if d, ok := direction.([]float64); ok {
if err := dExt.SwipeRelative(d[0], d[1], d[2], d[3]); err != nil { if err := dExt.SwipeRelative(d[0], d[1], d[2], d[3]); err != nil {
log.Error().Err(err).Msgf("swipe %s failed", d) log.Error().Err(err).Msgf("swipe %v failed", d)
} }
} else if d, ok := direction.([]interface{}); ok { } else if d, ok := direction.([]interface{}); ok {
sx, _ := builtin.Interface2Float64(d[0]) sx, _ := builtin.Interface2Float64(d[0])
+7 -2
View File
@@ -614,7 +614,10 @@ func runStepMobileUI(s *SessionRunner, step *TStep) (stepResult *StepResult, err
fmt.Sprintf("parse action params failed: %v", err)) fmt.Sprintf("parse action params failed: %v", err))
} }
if err := uiDriver.DoAction(action); err != nil { if err := uiDriver.DoAction(action); err != nil {
return stepResult, errors.Wrap(code.MobileUIDriverError, err.Error()) if !code.IsErrorPredefined(err) {
err = errors.Wrap(code.MobileUIDriverError, err.Error())
}
return stepResult, err
} }
} }
@@ -631,7 +634,9 @@ func runStepMobileUI(s *SessionRunner, step *TStep) (stepResult *StepResult, err
// validate // validate
validateResults, err := validateUI(uiDriver, step.Validators) validateResults, err := validateUI(uiDriver, step.Validators)
if err != nil { if err != nil {
err = errors.Wrap(code.MobileUIValidationError, err.Error()) if !code.IsErrorPredefined(err) {
err = errors.Wrap(code.MobileUIValidationError, err.Error())
}
return return
} }
sessionData := newSessionData() sessionData := newSessionData()
+1 -1
View File
@@ -1,4 +1,4 @@
__version__ = "v4.3.0-beta-10211541" __version__ = "v4.3.0"
__description__ = "One-stop solution for HTTP(S) testing." __description__ = "One-stop solution for HTTP(S) testing."
+1 -1
View File
@@ -1,6 +1,6 @@
[tool.poetry] [tool.poetry]
name = "httprunner" name = "httprunner"
version = "v4.3.0-beta-10211541" version = "v4.3.0"
description = "One-stop solution for HTTP(S) testing." description = "One-stop solution for HTTP(S) testing."
license = "Apache-2.0" license = "Apache-2.0"
readme = "README.md" readme = "README.md"