hurl/CHANGELOG.md
2024-09-28 19:29:31 +02:00

43 KiB

6.0.0 (TBD)

Thanks to @lambrospetrou, @jmvargas @mohammed90 @thePanz

Breaking Changes:

  • Check that variables do not conflict with existing functions #3229

Enhancements:

  • Jsonpath / Add Filter on boolean value #3252
  • Support short name for sections [QueryStringParams] => [Query], [FormParams] => [Form], [MultipartFormData] => [Multipart] #3238

Bugs Fixed:

  • Support case-insensitive Cookie Attributes #3265
  • Add additional check for --max-filesize option #3245
  • Fix filename parsing (used by cert option) #3242

5.0.1 (2024-08-30)

Bugs Fixed:

  • Fix regression in --output when output file doesn't exist #3195

5.0.0 (2024-08-29)

Thanks to @lambrospetrou, @OverkillGuy, @badboy, @DenuxPlays, @linkdd, @nkback, @claytonneal,

Breaking Changes:

  • Encode oneline string only with one backtick #3113

Enhancements:

  • Create intermediary directories if necessary when producing TAP report #2860
  • Expose request comments in --out json (hurlfmt) #2850
  • Create intermediary directories if necessary when producing JUnit report #2842
  • Add global requests count in test summary #2832
  • Replace output warnings by errors #2815
  • Fix inconsistent case for fields queryString and httpVersion in --json #2804
  • Run tests in parallel #2753
  • Add support for importing curl url option in hurlfmt #2750
  • Add JSON report #2738
  • Add repeat option to repeat a sequence of Hurl file #2680
  • Add repeat option per request #2680
  • Add optional duration unit #2653
  • Apply delay only once per entry, no matter how many retry #1973
  • Add toFloat filter #1732
  • Accept directory as Hurl arguments for processing file #1446

Bugs Fixed:

  • Get SSL certificates info on reused connections, from a cache #3031
  • Fix max-redirs: -1 in [Options] section #3023
  • Fix error displayed in double with bad option #2920
  • Fix hurlfmt exit code with lint error #2919
  • Truncate file then append it when dumping response with --output. #2886
  • Fix crash with --json option when capturing 'HttpOnly' and 'Secure' cookie attribute #2871
  • Fix crash when capturing 'Expires' cookie attribute #2870
  • Fix empty JSON key parsing #2836
  • Do not filter 'Authorization' header if host doesn't change while following redirect #2823
  • Fix sending 'Authorization' header from --user when following redirect #2812
  • Fix URL when following redirect for certain 'Location' header #2783
  • Fix powershell completion file #2729

4.3.0 (2024-04-23)

Thanks to @tarampampam, @CMiksche, @CodeMan99, @OverkillGuy, @hsanson, @jaminalder, @teto, @humphd, @mohammed90,

Enhancements:

  • Support --user option per request #2585
  • Add isNumber predicate #2538
  • Create intermediate directory when using --report-html #2531
  • Use '-' to read Hurl file from standard input #2523
  • Add --from-entry option to execute a file from a given entry #2500
  • Add isIsoDate predicate (take a string, checks YYYY-MM-DDTHH:mm:sssZ) #2427
  • Add completion files in Linux/MacOS packages #2401
  • Fix tarball layout to Linux filesystem #2401
  • Add --max-filesize option to limit HTTP response #2353
  • Display source request when there are asserts/runtime errors #2351
  • Using explicit stdout output #2312
  • Prevent raw binary response to be displayed on standard output #2306
  • Add --netrc, --netrc-file and --netrc-optional options #2094
  • Generate bash completion for hurl/hurlfmt #1864
  • Generate powershell completion for hurl/hurlfmt #1864
  • Generate fish completion for hurl/hurlfmt #1864
  • Generate zsh completion for hurl/hurlfmt #1864
  • Add experimental --parallel / --jobs options #88 #87

Bugs Fixed:

  • Export begin_call, end_call timings fields to RFC3339 (microseconds) #2699
  • Fix standalone css for regex #2693
  • Fix charset parsing logic of Content-Type header #2540
  • Fix filename templatization bug under certain conditions #2533
  • Fix empty glob not always returning an error #2517
  • Fix hurlfmt query certificate for hurl output format #2511
  • Fix --test progress bar not displayed when verbose is used #2506
  • Per request output takes file-root into account for path resolving #2445
  • Fix silent error when verbose option use unset variable #2444
  • Fix Content-type header override when used in lowercase #2416

Security Issues Fixed:

  • Prevent script injection in HTML report #2719

4.2.0 (2024-01-11)

Thanks to @hi2code, @lambrospetrou, @glb-cblin, @moono, @gmetal, @mihirn, @humphd, @RickMoynihan, @pit1sIBM, @janwytze, @kingluo, @teto, @khimaros, @iredmail, @andres-lowrie, @nikeee, @ztittle, @legzo

Enhancements:

  • Add --location-trusted option #2296
  • Add --unix-socket option #2291
  • Export entry source line number in JSON output #2273
  • Use Template for filename type #2259 #1731 #464
  • Add dark mode support for HTML report #2254
  • Add --output option per request #2184 #1326
  • Add filter jsonpath #2134 #1632 #440
  • Improve JSON body parsing error reporting #2056
  • Support template in option values #2041
  • Support conda-forge installation #2018
  • Add timestamps to the HTML reports #1983
  • Log only non-default options in verbose mode #1927
  • Support template in key string #1877 #1710 #898
  • Add skip option #1815
  • Add --ipv4/--ipv6 option #1727
  • Add --http3 option #1155
  • Add --http2 option #1155
  • Add --http1.0/-0 option #1155
  • Add --http1.1 option #1155

Bugs Fixed:

  • Add short name -v for verbose option #2310
  • Fix unicode surrogate pair decoding in JSON request body #2235
  • Better error description for some parse error #2187
  • Fix undefined error for various I/O error using --output. #2156
  • TAP reports can't be appended if there are failed tests #2099
  • Support HTTP/2 on Windows #2072
  • Support key password in --cert option (certificate[:password]) #2047
  • Keep initial request headers when following redirects #1990

4.1.0 (2023-09-21)

Thanks to @danielzfranklin, @apparentorder, @ppaulweber, @taigrr, @kallelindqvist, @jlazic, @Lythenas, @Jayshua, @chenrui333, @nikeee, @jasonkarns, @humphd,

Breaking Changes:

  • Fix published release packages names #1951

Enhancements:

  • Print host architecture with --version #1893
  • Add the aws-sigv4 option to generate AWS SigV4 signed requests #1840
  • Add delay CLI option #1832
  • Add --delay Option #1832
  • Support RFC-7807 application/problem+json for response body logging as text #1766
  • Rename fail-at-end option with continue-on-error option #1739
  • Add connect-to per request option #1736
  • Add support for --resolve option per request #1711
  • Add TAP report #1666 #601
  • Implement isDate predicate #1520
  • Add docker arm64 build #536

Bugs Fixed:

  • IsEmpty doesn't seem to work on object collections #1788
  • Fix Cookie Query Parsing error #1784
  • Support empty BasicAuth section #1772
  • Fix standalone option for hurlfmt HTML output #1759
  • Support IPv4/IPv6 address in proxy [Options] #1756
  • Reuse same HTTP method on redirect for appropriate HTTP status codes #1719
  • Fix URL runtime evaluation #1716

4.0.0 (2023-06-28)

Thanks to @elbart, @dross-carve, @kaala, @phaza, @FiloSottile, @linker3000, @pfeiferj, @devnoname120, @jasonkarns,

Breaking Changes:

  • The option --retry now takes a number that specifies the explicit number of retries (same behaviour than curl)
  • The jsonpath query/filter does not coerce single-entry collection any more #1469
  • hurl crate: LoggerOptionsBuilder replaces LoggerOption, retry option from RunnerOptionsBuilder have changed, and verbose option have been moved from RunnerOptionsBuilder to LoggerOptionsBuilder

Enhancements:

  • Add xpath filter #1698
  • Introduce curl --path-as-is option #1669
  • Deprecate word predicate when operator is available #1662
  • Make hurlfmt support several input files (like Hurl) #1650
  • Add timings info to very verbose mode #1644
  • Add waterfall to HTML report for a Hurl file #1613
  • Add proxy in Options section #1602
  • Add decode filter #1560
  • Add --error-format option to output HTTP context on errors #1542
  • Update --retry option to match curl option #1475
  • Add support for LINK, UNLINK, PURGE, LOCK, UNLOCK, PROPFIND and VIEW HTTP method #967
  • Support arbitrary HTTP methods #967

Bugs Fixed:

  • Export [Options] to JSON #1673
  • Use --data-binary for log curl command when posting file #1654
  • Fix extra request headers logs with large body. #1651
  • Print error message when no file is found with --glob option #1638
  • Support additional dot in jsonpath expression #1555
  • Make Call, Certificate, Cookie, Header, Request, Response, Timings, Version public #1548
  • Add quotes around certificate attribute in HTML export #1515
  • Change API in jsonpath / remove single-entry coercion #1469

3.0.1 (2023-06-01)

Thanks to @RWDai, @plul,

Bugs Fixed:

  • Do not parse key/value in certificate subject/issue any more #1583
  • Fix hurlfmt less predicate #1577
  • Patch encoding issue with xpath and libxml 2.11.1+ #1535

3.0.0 (2023-05-03)

Thanks to @DannyBen, @dermetfan, @joesantos418

3.0.0 is a major update because of breaking changes in Hurl crates.

Enhancements:

  • Add test attributes to JUnit XML #1460
  • Add certificate query #1384
  • Add daysAfterNow / daysBeforeNow filters #1309
  • Add errors in HTML report #1286
  • Use long options for curl command #1236
  • Add progress bar for tests #1224
  • Add date value/filters #1206
  • Implement isEmpty predicate #849
  • Add curl input to hurlfmt #316

Bugs Fixed:

  • Fix performance issue in Reader remaining method #1456
  • Parse empty JSON array body #1424
  • Add meta utf-8 charset to HTML report #1366
  • Use an uuid as identifier for the HTML Hurl file run report #1285 #1283
  • Improve HTML export #1059

2.0.1 (2023-02-01)

Thanks to @softprops,

Bugs Fixed:

  • Fix GraphQL query with variables to HTTP body request #1218

2.0.0 (2023-01-25)

Thanks to @imsVLC, @ad8lmondy, @jlecour, @ako, @jmoore34, @robjtede, @devnoname120, @dalejefferson-rnf, @dnsmichi,

Enhancements:

  • Add option ssl-no-revoke #1163
  • Add client cert/key to command line args and options #1129
  • Add connect-to option #1079
  • Add name attribute to JUnit report #1078
  • Check HTTP version and status first, then other asserts #1072
  • Support new one line string #1041
  • Add filters for htmlEscape and htmlUnescape #1038
  • Add toInt filter #1029
  • Use HTTP instead of HTTP/* for any HTTP version match #975
  • Add RunnerOptionsBuilder to create instance of RunnerOptions #972
  • Add support for LINK, UNLINK, PURGE, LOCK, UNLOCK, PROPFIND and VIEW HTTP method #967
  • Accept multiple --variables-file options #532
  • Add GraphQL support #504
  • Add --resolve option #379

Bugs Fixed:

  • Support '-' in JSONPath dot notation #1174
  • Fix cargo test --doc on Alpine #1124
  • Do not add newline at eof with --no-format option #1058
  • Fix variables update #1037
  • Fix querystring key parsing #1027

1.8.0 (2022-11-02)

Thanks to @chenrui333, @Jiehong, @Goffen,

Enhancements:

  • Add curl logs #899
  • Add query url #895
  • Make compact help #861
  • List all libcurl features with --version #836
  • Add --retry and --retry-interval option to retry request until asserts and captures are ok #525

Bugs Fixed:

  • Fix hurlfmt --color crash #957
  • Fix missing line in HTML output #924
  • Fix HTTP HEAD #903
  • Fix relative redirect #875

1.7.0 (2022-09-13)

Thanks to @danielbprice, @fourjay, @datamuc, @bdmorin, @humphd, @kautsig, @Karrq, @balroggg,

Enhancements:

  • Add string comparison predicates #798
  • Improve text summary #779 #593
  • Support NO_COLOR env variable (https://no-color.org) #713
  • Improve URL parsing error message #662
  • Display deprecated warning when using --progress and --summary option #637
  • Log body request in very verbose #628
  • Add options section #612
  • Install Hurl with npm #544
  • Add very verbose option #499
  • Add support for XML namespaces in XPath query #493
  • Use Template type for cookie value #473

Bugs Fixed:

  • Accept expression in comparison predicate #799
  • Fix file access authorization #674
  • Fix body file access #674
  • Fix implicit body asserts on compressed response body #567
  • Fix Brotli response body decoding #564
  • Fix sha256, md5, bytes query on compressed body #563
  • Fix redirection not followed #552
  • Encode string variables in JSON body #530
  • Fix curl export shell escape #530
  • Allow different types in JSON array #495

1.6.1 (2022-03-25)

Thanks to @humphd

Bugs Fixes:

  • Support @ for the username in [BasicAuth] section #513
  • Fix panicking while processing expected Regex value #514

1.6.0 (2022-02-10)

Thanks to @linjan, @adworacz, @humphd, @jpluscplusm,

Changes:

  • Add -A/--user-agent curl option to specify a User Agent for all requests of a file #452
  • Support filter with nested object in jsonpath expression #423
  • Add BasicAuth section #360
  • Add next request in interactive mode #268
  • Improving pattern for regex capture and matches predicates #4

Bugs Fixes:

  • Add additional characters in cookie value #466
  • Add square brackets in key-string #457
  • Fix Build in Alpine #448
  • Check that data file is a child of user provided context dir #405
  • Report error on missing closing quote for quoted String #403

1.5.0 (2021-12-09)

Thanks to @humphd, @tbolon, @ansscfc, @atcol, @realtica, @ramkumarkb

Changes:

  • Support globs with --test arg #387
  • Add ARM Testing with Circle CI #335
  • Option --html renamed to --report-html #333
  • Add JUnit XML Report Output #326
  • Add option --cacert #314
  • Display libcurl error code/message #310
  • Display curl -V version in hurl -V #309
  • Use --json parameter to write JSON to stdout #283
  • Using Environment Variables in Hurl files #122

Bugs Fixes:

  • Fix memory allocation #380
  • Fix Decimal float values #363
  • Fix build for ARM #334

1.4.0 (2021-10-18)

Thanks to @youhavethewrong, @fourjay, @tbolon, @Morreski, @andrejohansson

Changes:

  • Install via Scoop #289
  • Support spaces in filenames #287
  • Remove deprecated option --append #262
  • Improve HTML output for hurlfmt #260
  • Add option --ignore-asserts #254

Bugs Fixes:

  • Support tilde in URL #294
  • Fix Windows Terminal output for non-UTF-8 byte sequences #292
  • Fix asserts entries in JSON report #286
  • Fix --test mode in Windows (/dev/null) #273
  • Support key with underscore in jsonpath dot notation #269
  • Fix Windows installer PATH #267

1.3.1 (2021-09-11)

Bugs Fixes:

  • Accept hyphen in variable name #258
  • Support # in header value #255

1.3.0 (2021-09-03)

Changes:

  • Simplify JSON/HTML report generation #241
  • Add --progress option to print progressive status and executed count #236
  • Add endsWith predicate #234
  • Add --summary option to print tests metrics #232
  • Add md5 query #231
  • Add Hex body #230
  • Add dependency check in the CI #226
  • Use startswith/contains predicate with bytearray #224
  • Add subquery count #217
  • Add notEquals (!=) predicate #216
  • Accept predicate value raw-string and base64 #215
  • improve error messages when syntax is not recognized #213
  • Add operators for arithmetic predicates #210
  • Improve error messages if the URL contains an illegal character #207
  • Improve Error message for the countEquals predicate #195
  • Improve Error Message "Could not Resolve Host" #194
  • Add HTTP Headers in the session json file. #191
  • Improve Hurl Report #190
  • Output curl command-line in verbose mode #179
  • Normalize win64 packages names #178
  • Add checksum body query (md5, sha1, sha256) #102

Bugs Fixes:

  • Fix incorrect JSON export for lessThan predicate #212
  • Fix segmentation fault with Invalid XPath Assert #192

1.2.0 (2021-03-03)

Hurl 1.2.0 is now available for Windows.

Changes:

  • Create release for Windows #174
  • Run Test Integ in Windows #160
  • Support terminal colors in Windows #159
  • Update to Rust 1.50.0 #156
  • Support Hurl File with UTF8 BOM #151
  • Type input variables #120

Bugs Fixes:

  • Support wildcard in jsonpath #169
  • Reading body file is too slow #144

1.1.0 (2021-02-07)

Changes:

  • Add windows build documentation #150
  • Add verbose output when a ssl error occurs #145
  • Migrate integration scripts to python #126
  • Add option --interactive #121
  • Improve Template Support in JSON body #116
  • Update to Rust 1.49.0 #112
  • Add option --variables-file / --variables #42

Bugs Fixes:

  • Insecure mode for a full session #143
  • Display error message when hurl input can not be decoded #139
  • Cookie value in cookie section doesn't accept some value #132
  • Running cargo test in windows #128
  • Input Cookie file #124

1.0.0 (2020-12-18)

Changes:

  • Update to Rust 1.48.0 #107
  • Add type predicates #98
  • Arithmetic predicates for number (Integer or Float) #95
  • Add predicates to test value types #94
  • Add duration query #90
  • Add comparison predicates #89

Bugs Fixes:

  • Serialization of cookie query for Expires attributes with hurlfmt #100
  • Valid Jsonpath query is not parsed #93

0.99.14 (2020-11-17)

Changes:

  • Update hurlfmt usage #81
  • Migrate fully to GitHub Actions #69
  • Add Hurl File JSON export #65
  • Support wildcard value in implicit status code response #55

Bugs Fixes:

  • Can not parse user in URL (Basic Authentication) #73
  • MultipartFormData is not present in json export #63
  • Hurl usage doesn't end with newline #60

0.99.13 (2020-10-28)

Hurl 0.99.13 now uses libcurl under the hood instead of reqwest rust crate. This makes hurl even closer to curl in terms of behavior and semantic.

Changes:

  • Improve Cookie Asserts #5
  • Request Cookies Section should not change cookie store #25
  • Uncompress response body for queries #35
  • Add option --compressed #36
  • Predicates with not qualifier #39
  • Support Multiple Content-Encoding (at the same time) #40
  • Add option -u, --user #41
  • Do not add header Expect automatically #44
  • Add timeout option (--connect-timeout and --max-time) #30
  • Add option --compressed #34
  • Decompress response body #38

Bugs Fixes:

  • Fix Host" request header with specific port #6
  • Fix Assert with different types of values #37

0.99.12 (2020-08-27)

Initial Release (beta)