You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -38,15 +38,32 @@ image::manual-to-automation.png[Manual to Automation, align="center"]
38
38
[.lead]
39
39
It strikes a balance between _flexibility_
40
40
provided by low-level tools like https://rest-assured.io/[**REST Assured**] or https://cucumber.io/[**Cucumber**] and _ease of use_
41
-
provided by UI tools like https://www.postman.com/[**Postman**]
41
+
provided by UI tools like https://www.postman.com/[**Postman**].
42
42
43
43
image::hybrid-tool.png[]
44
44
45
+
[.lead]
46
+
The fundamental principle of this tool is
47
+
to automate your Postman collection on JVM *without compromising on Manual testing*.
48
+
Which means
49
+
the collections used in JVM automation can be maintained
50
+
to always be ready for Manually trying them out importing into Postman.
51
+
52
+
== Why not use https://learning.postman.com/docs/collections/using-newman-cli/command-line-integration-with-newman[Newman] or https://learning.postman.com/docs/postman-cli/postman-cli-overview/#comparing-the-postman-cli-and-newman[Postman CLI]?
53
+
54
+
* ReṼoman may be similar to Newman or Postman CLI when it comes to executing a Postman collection, but the _similarities end there_
55
+
* Newman or Postman CLI are built for node and cannot be executed within a JVM. Even if you are able to run in some hacky way, there is no easy way to assert results.
56
+
* ReṼoman is JVM first that lets you seamlessly integrate with your existing Java ecosystem. It lets you configure more — for example, the <<#_pre_step_and_post_step_hooks,Hooks>> feature lets you plug in your custom JVM code in-between the execution.
57
+
* ReṼoman has a strong emphasis on <<#_type_safety_with_flexible_json_pojo_marshallingserialization_and_unmarshallingdeserialization,Type-Safety>>, leveraging JVM strong types over JSON for writing assertions and custom code
58
+
59
+
[.lead]
60
+
Read more in the <<USP>>
61
+
45
62
== Artifact
46
63
47
64
[.lead]
48
65
Maven
49
-
[source,xml,subs=attributes+]
66
+
[source,xml,subs=attributes+,tabsize=2]
50
67
----
51
68
<dependency>
52
69
<groupId>com.salesforce.revoman</groupId>
@@ -108,11 +125,18 @@ ____
108
125
109
126
=== Template-Driven Testing
110
127
111
-
* The exported Postman collection JSON file is referred to as a Postman template, as it contains some placeholders/variables in the `+{{variable-key}}+` pattern. You can read more about it https://learning.postman.com/docs/sending-requests/variables/[here]
112
-
* ReṼoman understands these templates and replaces these variables at the runtime, similar to Postman. It supports
The exported Postman collection JSON file is referred to as a Postman template, as it contains some placeholders/variables in the `+{{variable-key}}+` pattern. You can read more about it https://learning.postman.com/docs/sending-requests/variables/[here].
131
+
This is a popular and proven pattern that interconnects multiple requests like a Graph. This is not unique to Postman, but Postman is popular and has a full-blown UI, which makes it an attractive choice to support Postman templates. But that said, the tool is modular, and the implementation is not coupled with any Postman related contracts. *In the future, we can think of supporting more template formats*
Here is a simple link:{pmtemplates}/restfulapidev/restful-api.dev.postman_collection.json[Exported Postman collection] and link:{pmtemplates}/restfulapidev/restful-api.dev.postman_environment.json[Environment],
166
+
Here is a simple link:{pmtemplates}/restfulapidev/restful-api.dev.postman_collection.json[Exported Postman collection] and link:{pmtemplates}/restfulapidev/restful-api.dev.postman_environment.json[Environment] JSON files,
143
167
to hit a free public https://restful-api.dev/[RESTFUL-API].
144
168
You can import and manually test this collection through the `Run collection` button like this:
145
169
@@ -214,7 +238,7 @@ StepReport(
214
238
<2> Snapshot of Environment at the end of each step execution. It can be compared with previous or next step environment snapshots to see what changed in this step
215
239
216
240
[.lead]
217
-
`Rundown` has many convenient methods to ease applying further assertions on top of it.
241
+
`Rundown` has many convenient methods to ease applying further assertions on top of it. Checkout its <<#_ide_debugger_view,IDE Debugger view>>
218
242
219
243
TIP: Other simple examples to see in Action: link:{integrationtestdir}/com/salesforce/revoman/integration/pokemon/PokemonTest.java[PokemonTest.java]
220
244
@@ -368,6 +392,7 @@ CAUTION: Iterable attributes (like `List`, `Map` etc) accept an `Iterable`. If y
368
392
[#_debugging_dx]
369
393
== Troubleshooting DX
370
394
395
+
[#_ide_debugger_view]
371
396
=== IDE debugger view
372
397
[.lead]
373
398
This tool has a particular emphasis on the Debugging experience.Here is what a debugger view of a <<Rundown>> looks like:
@@ -737,12 +762,6 @@ You don't have to.
737
762
This is a JVM-first tool,
738
763
and you can interlace your TestUtils through <<#_plug_in_your_java_code_in_between_postman_execution,Pre-Step/Post-Step Hooks>>
739
764
740
-
=== Why not use https://learning.postman.com/docs/collections/using-newman-cli/command-line-integration-with-newman[Newman] or https://learning.postman.com/docs/postman-cli/postman-cli-overview/#comparing-the-postman-cli-and-newman[Postman CLI]?
741
-
742
-
* ReṼoman may be similar to Newman or Postman CLI when it comes to executing a Postman collection, but the _similarities end there_.
743
-
* Newman or Postman CLI are built for node and cannot be executed within a JVM. Even if you are able to run in some hacky way, there is no easy way to assert results.
744
-
* ReṼoman is JVM first that lets you configure a lot more, and gives you back a detailed report to assert in a typesafe way
745
-
746
765
== 🙌🏼 Consume-Collaborate-Contribute
747
766
748
767
* This link:CONTRIBUTING.adoc[CONTRIBUTING] doc has all the information to set up this library on your local and get hands-on.
0 commit comments