Releases: serenity-bdd/serenity-core
v1.1.32-rc.1: Release of 1.1.32-rc.1
- Merge branch 'master' of github.com:serenity-bdd/serenity-core - Refactoring the Screenplay code - WIP - Merge pull request #383 from YamStranger/release_notes_2016/04/20_06_53 - updating changelog
v1.1.31: Release of 1.1.31
Pull requests:
- #358 Rest core updated. Fixed issues with reason in old structure (@YamStranger)
Commits:
-
117dbf2 feat: serenity rest core updated to return updated configurations, filters, etc. (@YamStranger)
-
2787384 feat: serenity-rest implemented recording of boyd, content-type, path, method, prepared recoding structure (@YamStranger)
Now it will be is easy to include in restQuery recording info about cookies, headers, and so on using filtering RestAssured mechanism
-
2d4719b feat: serenity-rest supported sequences of operations in different steps: (@YamStranger)
Now it is possible run sequence of rest operations, with restspecification and response shared in one thread:
class RestSteps { [@Ste](https://github.com/Ste)p def successfulGet(final String url) { given().get("$url/{id}", 1000).then().body("id", Matchers.equalTo(1000)); } [@Ste](https://github.com/Ste)p def getById(final String url) { rest().get("$url/{id}", 1000); } [@Ste](https://github.com/Ste)p def thenCheckOutcome() { then().body("Id", Matchers.anything()) } }
-
52e54a9 feat: implemented wrapping of request specification after multypart request configurations (@YamStranger)
-
5b6c531 feat: implemented wrapping of request after configuring cookies (@YamStranger)
Now serenity rest will work correctly after operations like below:
given().cookies(mapWithCookies).get(url) given().cookies("value").get(url) given().cookies("value", param).get(url)
-
5bdeda5 feat: serenity-rest implemented wrapping for all requests in SerenityRest class, all covered by tests (@YamStranger)
-
7c0f58a test: added test to ceheck wrapping after cookie operations (@YamStranger)
-
7d5f5c8 test: implemented test for wrapping request with configured multipart request (@YamStranger)
-
8040ade feat: serenity-rest implemented recording of all basic fields, like status-code, body, path, method. Implemented recoding of exceptions. (@YamStranger)
Now all operations will be recorded, after request executed, in report all fields will appear in same format as send.
After this update content/body should be matched with additional transformation, because if string contains json/xml it will be reformatted by RestAssured,
for example for Json it can be:... import static net.serenitybdd.rest.staging.JsonConverter.*; ... assert formatted(query.responseBody) == formatted(body)
Introduced DecomposedContentType class for representation simple content types:
if in rest assured defined only:ANY("*/*"), TEXT("text/plain"), JSON("application/json", "application/javascript", "text/javascript"), XML("application/xml", "text/xml", "application/xhtml+xml"), HTML("text/html"), URLENC("application/x-www-form-urlencoded"), BINARY("application/octet-stream");
not it will be possible define something like that
given().contentType("$APPLICATION_JSON")
for:ANY("*/*"), TEXT("text/plain"), APPLICATION_JSON("application/json"), APPLICATION_JAVASCRIPT("application/javascript"), APPLICATION_XML("application/xml"), TEST_XML("text/xml"), APPLICATION_XHTML_XML("application/xhtml+xml"), TEST_JAVASCRIPT("text/javascript"), HTML("text/html"), URLENC("application/x-www-form-urlencoded"), BINARY("application/octet-stream");
as well as find some RestAssured content type by DecomposedContentType or String:
DecomposedContentType.byString("application/javascript; Charset: UTF-8").contentType()
-
8d3e5c9 feat: serenity rest core decomposed to make possible to use different classes for different purposes. (@YamStranger)
Now it is possible to execute almost all serenity rest operations using SerenityRest (90+ methods) or use smaller classes:
RestDefaults (50+ methods)can be used for configuratins only default parameters
RestRequests (20+ methods)can be used for making requests
RestUtility (20+ methods)can be used for initialising some default or reusable objects -
a608efe feat: serenity-rest-assured updated rest core and tests, renamed some classes (@YamStranger)
-
ae9e4a8 feat: serenity-core updated restQuery and reports to include Cookies and headers, changed wrapping of request and response (@YamStranger)
-
b99deb4 test: serenity-rest created test to check how dryRun works for serenity rest (@YamStranger)
-
ca6690e test: serenity-rest implemented test to check if body, contenttype, responce is recorded (@YamStranger)
-
d869ad2 test: serenity-rest implemented tests to check how recording of rest requests and reponses works (@YamStranger)
-
de2dc5e feat: implemented support of DryRun for Serenity Rest (@YamStranger)
-
ebe88bd feat: serenity rest core decomposed to make possible use shaned method invocations for configuring default parameters. (@YamStranger)
-
f5eb645 test: serenity-rest implemented test to check if failed query recorded and it is possible to use assertions (@YamStranger)
v1.1.30
Commits:
-
08c4823 test: serenity-rest tested to configure base path and pase uri and other base configurations (@YamStranger)
-
146b1d8 feat: serenity-rest implemented wrapping of request after redirects configuration (@YamStranger)
-
231052b feat: implemented wrapping after operations with body, content, headers, contentTypes (@YamStranger)
Now serenity-rest will work correctly with opertions like:
given().contentType(ContentType.XML).get(url) given().contentType(ContentType.XML).get(url) given().headers(map).get(url) given().header(CONTENT_TYPE.asString(), ContentType.JSON).get(url) given().contentType("application/json").content(body).post(url)
-
30105b4 test: created tests to check if HEAD operatin works correctly and return empty body (@YamStranger)
-
432e5f6 feat: implemented wrapping during executing on request instance operations like when, with, given, and (@YamStranger)
-
443ca49 test: serenity-rest, added tests for checking https requests and auth params configurations (@YamStranger)
-
4cb9449 feat: implemented wrapping of request/response after HTTPS and Auth configurations (@YamStranger)
Now, rest assured will use wrapped request and response after configurations like below:
given().relaxedHTTPSValidation().get(url) when().authentication().basic("login","password").get(url) given().authentication().none() given().auth().oauth2(token) given().authentication().basic("user", "password")
-
5b6b67f feat: wrapped put request, updated wrapping of get request - to use only one function-endpoint (@YamStranger)
-
5cc45f3 feat: in serenity-rest implemented setting base path, base uri, session id, port, urlEncodingEnabled (@YamStranger)
To set base paramters next code can be used:
given().basePath(path).get(url) given().baseUri(base).port(port).get(path) given().baseUri(base).port(port).get(path) given().baseUri(base).basePath("/test").get("log/levels")
-
63d9538 test: added tests to check wrapping response and request and correctness of setting body, content, headers (@YamStranger)
-
6ed97f3 style: changed request organisation, added tests for get operation (@YamStranger)
-
794f5af test: serenity-rest, added tests for checking wrapping after redirects configuration (@YamStranger)
-
7a014ec feat: implemented HEAD, PATCH, DELETE, OPTIONS, POST operations and wrapping of results (@YamStranger)
-
7f439d2 test: serenity-rest added tests for using chains of given, and, when, with based on request instance (@YamStranger)
-
81c6d30 feat: impelemented processing and wrapping of result for operations with pathParameter, queryParams, param, params, parameters, formParam (@YamStranger)
-
af19533 feat: implemented processing log operation with rest assurance, and created tests for it (@YamStranger)
-
ca059a5 test: added tests to check wrapping repsponse after PUT, POST, PATCH, DELETE, OPTIONS, HEAD requests (@YamStranger)
-
f1e2cde test: added tests for PUT operations (@YamStranger)
v1.1.29-rc.3: Release of 1.1.29-rc.3
Added basic Microsoft Edge driver support
v1.1.29-rc.2: Release of 1.1.29-rc.2
Pull requests:
- #367 Updated making screenshots for browsers without such abbility (@YamStranger)
- #366 Updated making screenshort with died browser - nothing should be taken (@YamStranger)
- #360 Fixed closing web driver when appium is used, it seems that window handles still does not implemented for Android devices, only for iOS (@YamStranger)
- #354 fix: Issues with SerenityParameterized test requiring WebDriver (@jordanbragg)
- #349 Updated scenario data driven steps processing for report - now report will contains steps as for first scenario (@YamStranger)
- #348 Updated name of test method for Qualifier tests (@YamStranger)
- #347 Updated processing of @qualifier tag in junit tests with data tables. Now it is possible add short description to steps based on parameters value (@YamStranger)
- #344 Created gradle build config for smoketests to execute them against latest serenty core (@YamStranger)
- #339 Updated tests for rest-assurance to use wiremock server instead of petstore. Added TestCase rule - now it is possible initialize test using spock (@YamStranger)
- #330 Updated store/load of outcomes - serenity.report.encoding property will be used with UTF-8 as default (@cliviu)
Commits:
- 240b93b feat: added checking if browser alive before taking screenshot or saving page-source (@YamStranger)
- 4d2029c test: updated tests for rest-assurance to use wiremock server instead of petstore (@YamStranger)
- 6417437 fix: updated scenario data driven steps processing for report - now report will contains steps as from first scenario (@YamStranger)
- 6aefe69 test: refactored test for Qualifier (@YamStranger)
- 71102ac fix: updated processing of @qualifier tag in junit tests with data tables. Now it is possible add short description to steps based on parameters value (@YamStranger)
- 89e9512 test: added tests to check how taking screenshorts works with died browsers (@YamStranger)
- a4d6b32 fix: When using SerenityParameterizedRunner tests there was a need to add [@Managed WebDriver in order to see the examples table. This is due to TestClassRunnerForInstanciatedTestCase not overriding initListener](https://github.com/Managed WebDriver in order to see the examples table. This is due to TestClassRunnerForInstanciatedTestCase not overriding initListener)s
- a505bd9 fix: updated closing web driver when appium is used, it seems that window handles still does not implemented for Android devices, only for iOS (@YamStranger)
- bf6d91e chore: created gradle build config for smoketests to execute them against latest serenty core (@YamStranger)
- e6e6651 test: updated name of test method (@YamStranger)
v1.1.29-rc.1: Release of 1.1.29-rc.1
Pull requests:
- #335 Updated moving files. Now tmp files of reports will be moved only after stream will be closed (@YamStranger)
- #333 Updated appium java client to 3.3.0 (@YamStranger)
- #332 Updated processing of names to keep abbreviations of JSON CSV XML (@YamStranger)
- #331 Updated appium configuration to be compatible with Appium 1.5 - appium.app is no longer required if appium.browserName is supplied (@hazmeister)
Commits:
- 0691998 fix: updated moving files. Not tmp files of reports will be moved only after stream will be closed (@YamStranger)
- 3cacf17 chore: updated appium java client to 3.3.0 (@YamStranger)
- bf3fa9a feat: updated processing of names (@YamStranger)
v1.1.28: Release of 1.1.28
Pull requests:
- #295 Updated test to check how darkroom works in parallel screenshot taking (@YamStranger)
- #328 Included exception/assertion message into serenity report (@YamStranger)
Commits:
- 1a6f158 test: redusing resource usage during testing of darkroom (@YamStranger)
- 1c84dd4 test: Darkroom can be used in parallel (@YamStranger)
- 5f7e414 fix: updated test to fail if darkroom fail in parallel screenshot taking (@YamStranger)
- 5fdbaa9 test: added test for fix of Exception/assertion message in serenity report for #321 (@robertzett)
- f6fd880 fix: included in serenity report Exception/assertion message for #321 (@robertzett)
v1.1.27: Release of 1.1.27
Pull requests:
- #326 Updated report generation to use temp files. (@YamStranger)
- #324 Updated method to print exception if it will appear (@YamStranger)
- #323 Updated loader and reporter to load and generate testoutcomes concurrently with tests, updated gson core to 2.4 (@YamStranger)
- #319 Updated jbehave to 4.0.5 (@YamStranger)
- #317 Updated checking of empty string to use StringUtils, for #310 (@YamStranger)
- #316 Updated contiributing guide - explaned multiline commits and pull requests name convention (@YamStranger)
- #311 Change log generated for all releases (@YamStranger)
- #313 Fixed Test Failure stacktrace, now it can contain elements with no fileName (default.ftl), for #312 (@marek5050)
Commits:
- 1314d42 feat: updated report generation to use atomic operations (@YamStranger)
- 3fe8573 perf: updated checking of empty string to use StringUtils (@YamStranger)
- 5afea72 fix: updated report generation to use temp files, it fixes bugs with running tests with multiple workers (and different Java Runtime as well) (@YamStranger)
- 80d82d0 fix: updated returned file to use generated file (@YamStranger)
- 82f8953 docs: updating contributing docs (@YamStranger)
- ab632f4 feat: updated jbehave to 4.0.5 (@YamStranger)
- d9e9c80 feat: updated method to pring exception ifit will appear (@YamStranger)
- e0200f2 fix: updated report loading and generating code and added test to be sure that all can be run concurrently (@YamStranger)
- f91e7b3 feat: test updated for reporter and loader - same testoutcoume should be writed only once in report dirrectory (@YamStranger)
- fa25694 fix: updated report generation to use temp files with random names (@YamStranger)
v1.1.26: Release of 1.1.26
Commits:
v1.1.26-rc.3: Release of 1.1.26-rc.3
Commits:
-
433b732 Allow more elegant waits in the Screenplay module (@wakaleo)
You can now write code like this:
jane.should(eventually(seeThat(TheClickerValue.of(clicker), equalTo(10))))
This will not fail if the matcher cannot be evaluated the first time, but will retry up to a maximum of 'serenity.timouts' seconds (5 by default).