v1.0.0-rc.5
v1.0.0-rc.5
What's new?
This is a pre-release of venom 1.0.0. This release contains a lot of refactoring, bug fixes and new features since the release 0.28.0.
Command line arguments
Simplification of the command line options:
- flags
--log
,--profiling
were deleted. The flag-v
was added. You can use-vv
or-vvv
to increase verbose. - flag
--strict
was deleted. If there is a test failure, venom will always exit with code 2. - flag
--exclude
was deleted. This can be easily replaced on command line with grep. Example:venom run $(ls *.yml|grep -v toexclude.yml)
. - flag
--parallel
was deleted. You can useparallel
software in remplacement of the flag. - flag
--no-check-variables
was deleted, venom will always check variables. - flag
--env
was deleted. You can use--var
or--var-from-file
or.venomrc
file to declare variables with value from environment variables. See https://github.com/ovh/venom#environment-variables. Notice that you can't use anymoreFOO=bar venom run ...
, you have now to use:VENOM_VAR_FOO=bar venom run ...
Options can be set with environment variables: VENOM_FORMAT=json venom run *.yml
is the same as venom run --format=json *.yml
.
See Readme for other flags usage.
Command line output
The output of venom command line was rewritten. It's much more readable with color and you can debug testsuite with a new keyword: info
. See https://github.com/ovh/venom#debug-your-testsuites
Test variables
If you are using variables in your testsuite, it is recommended to declare them at the vars
section of a testsuite. Then you have several options to set them. See https://github.com/ovh/venom#variables
Variable helpers
In this example, we will add simple quote around the .testA.myvariable
.
- name: testB
steps:
- type: exec
script: echo {{.testA.myvariable | squote}} > variable.with.simple.quote.txt
assertions:
- result.code ShouldEqual 0
See all variable helpers: https://github.com/ovh/venom#variable-helpers
Testsuite version
The version
attribute in a testsuite was deleted. The version
was used to control the basepath of the testsuite.
Venom now use as basepath the testsuite file, the same behaviour as version = "2"
before.
This testsuite will read the file testa.json
from the same directory as the testsuite itself.
name: Testsuite Read File
testcases:
- name: Testcase Read File
steps:
- type: readfile
path: testa.json
Testcase name
If you have to write a reference to a testcase property, note that at runtime the testcase name is handled as a slug with uppercase support.
Skip testcase
It is possible to skip testcase according to some assertions. See https://github.com/ovh/venom#skip-testcase
Executors
New executors:
amqp
: https://github.com/ovh/venom/tree/master/executors/amqpmqtt
https://github.com/ovh/venom/tree/master/executors/mqttodbc
. As this executor requiresunixodbc
driver, this is only available as plugin. doc aboutodbc
executor: https://github.com/ovh/venom/tree/master/executors/plugins/odbc
There is now three ways to write a venom executor: builtin
, plugin
or user-defined
.
Plugin
Venom can now use .so
plugin, the counterpart for using plugin is that you have to compile venom yourself.
.so
files are not in the venom release.
- See how to write an executor as plugin: https://github.com/ovh/venom/tree/master/executors/plugins
User-defined executors
You can define reusable testcase as executor, and call it from your testsuite files.
Doc: https://github.com/ovh/venom#user-defined-executors
Compile, Test
A makefile is now available to build, test, etc.
$ make build
$ make plugins
$ make help # display all make commands
Changelog
Features
- Add system to save the html when an error occurred during the element selection (#236) (2638720), closes #236
- Apache License, Version 2.0 (#309) (87ea5cc), closes #309
- Change the way to decode json to change the way to parse big number (16a927e)
- update dependencies (#285) (95e8ecc), closes #285
- add Dockerfile (#297) (d0edc92), closes #297
- add request in HTTP executor result (#314) (cc86621), closes #314
- argument as environment variables (#323) (7b9664c), closes #323 #238 #195
- handler IS_TTY env variable to display color (#322) (3825176), closes #322
- improve -vv results (7afe6cc)
- plugins support (#311) (32f2c79), closes #311
- read venom flags from configuration file (#326) (ca30acf), closes #326
- replace enableProfiling and log-level flags (#301) (50875e7), closes #301
- skip testcase (#328) (e37fe3a), closes #328
- user executor (#325) (5ebcbd6), closes #325 #320
- doc: docker run (#306) (f656658), closes #306
- doc: info keyword (#305) (b91d80a), closes #305
- doc: prerequisite make build (#296) (de77d5a), closes #296
- executor/kafka: upgrade sarama version (#277) (259eb6b), closes #277
- executor/dbfixtures: new drivers (oracle, odbc) (7bcb95d)
- executor/kafka: Kafka Avro executor (b741e2c)
- executor/web: improve web executor documentation (a72de4f)
- executor/http: interpolate bodyfile request (#321) (6572b13), closes #321
Bug Fixes
- do not re-download if not needed (#281) (196336a), closes #281 #239
- error on no yml file (#283) (dd6047a), closes #283 #252
- don't ignore invalid yml files (#274) (36a46cd), closes #274 #234 #235
- dont read two times the testsuites (#327) (22f1c8d), closes #327
- executors documentation and remove timeHuman everywhere (410851d)
- hacking readme (40fc19d)
- integration tests (#304) (d164074), closes #304
- lint (#313) (5b5d65a), closes #313
- update go-dump dep (4df60a4)
- lint: (cebd878)
- executor/http: default assertion (#282) (8f75de3), closes #282 #249
- executor/kafka: timeout in seconds (c2b4070), closes #290
- executor/redis: dialURL and documentation (#315) (db93a36), closes #315
- executor/sql: removing odbc for now (#300) (687d77c), closes #300
Refactoring
- delete --parallel flag (#299) (4a8dad7), closes #299
- executor/web: isolate dump html file (a103112)
- assertions, output, logs, and template (#286) (d711aa5), closes #286
- clean and simplify venom codebase (#298) (47441c3), closes #298
- move cli to cmd package (#308) (0c2128a), closes #308
- remove -no-check-var flag (#303) (ba4a226), closes #303
- remove flag --strict, exit 2 if err (#302) (256289d), closes #302
- test(executor/kafka): it (#280) (f2b8f0e), closes #280
1.0.0-beta.1 (2020-11-26)
- doc (#331) (9623ad7), closes #331
- doc: add missing builtin variables (#334) (207bd80), closes #334
- doc: copyright (#335) (f668096), closes #335
- doc: fix some typo in readme (#332) (1d42092), closes #332
- doc: update gif (#336) (56cccf9), closes #336
- fix: parse missing vars (#337) (9eb3367), closes #337
1.0.0-beta.2 (2020-11-30)
- fix: assertions on time.Time results (d307b52), closes #338
- fix: reuse vars from testcase (#339) (726661b), closes #339
- fix: shouldEqual with int value (#341) (3adefcc), closes #341
1.0.0-beta.3 (2021-01-08)
- doc: fix typo variables_files (#343) (e04f88d), closes #343
- feat(executor/http): Mutual TLS (#342) (e2ed967), closes #342
- fix: assertions on date (#352) (984a392), closes #352 #348
- fix: take care of venom variables on parse file (#351) (d4a2b47), closes #351
1.0.0-beta.4 (2021-01-08)
1.0.0-rc.1 (2021-01-18)
- doc: copyright 2021 (#356) (ae793f2), closes #356
- fix(venom): parsing --vars (#355) (fc69bc1), closes #355 #354
1.0.0-rc.2 (2021-02-10)
- doc: copyright 2021 (#356) (ae793f2), closes #356
- feat(executor/http): resolve attribute (#362) (2e76e0a), closes #362
- fix(venom): multiple user executors (#360) (4b3f3ad), closes #360
- fix(venom): parsing --vars (#355) (fc69bc1), closes #355 #354
- fix(venom): use vars as string or struct (#361) (0233854), closes #361
- fix(venom): display line number on failure / info (#359) (779b3cd), closes #359 #358
1.0.0-rc.3 (2021-03-08)
- doc: faq about json and quotes (#383) (2349265), closes #383 #381
- feat(executor/http): resolve attribute (#362) (2e76e0a), closes #362
- feat(executor/ovhapi): add proxy and resolve to ovhapi executor (#365) (1bd7c80), closes #365
- feat: add optionnal flag --lib-dir (#376) (33fe791), closes #376 #373 #374
- fix: .venomrc parsing (#372) (bc5ffe8), closes #372 #370
- fix: display failures on user executor (#378) (1d8d81a), closes #378 #375
- fix: multiple user executors (#360) (4b3f3ad), closes #360
- fix: use vars as string or struct (#361) (0233854), closes #361
- fix: display line number on failure / info (#359) (779b3cd), closes #359 #358
- fix: parse complex vars (#367) (5ede261), closes #367 #368
- fix: ts vars interpolation only once (#379) (02751cc), closes #379 #377
- fix: user_executor inside user_executor (#380) (019b1b5), closes #380 #371
1.0.0-rc.4 (2021-03-23)
- chore: compute coverage (#391) (cdb4948), closes #391
- chore: update goavro dependency (#388) (0623049), closes #388
- doc: faq about json and quotes (#383) (2349265), closes #383 #381
- doc: fix readme for gRPC executor (#387) (99ce057), closes #387
- feat(executor/ovhapi): add proxy and resolve to ovhapi executor (#365) (1bd7c80), closes #365
- feat: add optionnal flag --lib-dir (#376) (33fe791), closes #376 #373 #374
- fix(executor/grpc): return error to avoid panic (#386) (ffa5817), closes #386
- fix(venom): .venomrc parsing (#372) (bc5ffe8), closes #372 #370
- fix(venom): display failures on user executor (#378) (1d8d81a), closes #378 #375
- fix: parse complex vars (#367) (5ede261), closes #367 #368
- fix: ts vars interpolation only once (#379) (02751cc), closes #379 #377
- fix: user_executor inside user_executor (#380) (019b1b5), closes #380 #371
- fix: variables reading with .venomrc (#389) (4aacfd5), closes #389 #385
- fix: verbose flag if nil (#390) (c844a7e), closes #390
1.0.0-rc.5 (2021-07-06)
- chore: compute coverage (#391) (cdb4948), closes #391
- chore: do not upload the same file twice (#399) (fb1ae8b), closes #399
- chore: update goavro dependency (#388) (0623049), closes #388
- doc(readme): add amqp and globstar (#413) (c8c2bf0), closes #413
- doc: example executor code (#414) (16c6d45), closes #414
- doc: fix readme for gRPC executor (#387) (99ce057), closes #387
- feat(executor/kafka): add key_filter attribute to kafka consumer executor (#394) (16764f3), closes #394
- feat(executor/kafka): add wait_for attribute to consume messages for X seconds in kafka consumer exe (4fb0181), closes #393
- feat(executor/kafka): improvements over kafka consumer executor (#395) (2118e1f), closes #395 /github.com/Shopify/sarama/blob/master/consumer_group.go#L27-L29
- feat: add AMQP executor (#408) (736fa27), closes #408
- feat: add globstars ** support (#412) (9d3c429), closes #412
- fix(executor/grpc): return error to avoid panic (#386) (ffa5817), closes #386
- fix: variables reading with .venomrc (#389) (4aacfd5), closes #389 #385
- fix: venom.datetime and venom.timestamp (#407) (6abc9d3), closes #407 #405 /github.com/ovh/venom/blob/v0.28.0/templater.go#L115
- fix: verbose flag if nil (#390) (c844a7e), closes #390
- initial implementation of mqtt executor (#401) (1e1af6e), closes #401
- test: add test on potential panic (#406) (e2c7208), closes #406 #397
- venom: fix panic pointer and map are both nil (#403) (7620d66), closes #403
- venom: parse Redis responses containing nested arrays (#404) (2bb43e4), closes #404
- venom: small improvement to assertions (#397) (11745d2), closes #397