Slide 1

Slide 1 text

Get Started With a Multi-line Title A Template-Driven API automation tool for JVM Gopal S Akshintala | Lead MTS ReṼoman 🦹 (Rev-Woman)

Slide 2

Slide 2 text

Gopal S Akshinta l Lead Developer, Salesforce @GopalAkshintala overfullstack.github.io

Slide 3

Slide 3 text

aPI First @GopalAkshintala

Slide 4

Slide 4 text

aPI automation @GopalAkshintala

Slide 5

Slide 5 text

QA Dev @GopalAkshintala

Slide 6

Slide 6 text

mul-T-verse E2E FTests MANUAL @GopalAkshintala

Slide 7

Slide 7 text

Alien Automation Frameworks @GopalAkshintala

Slide 8

Slide 8 text

Lead Jr. Dev Code walk- through But what’s that shadowy place over there That’s Automation Wild West Tests @GopalAkshintala

Slide 9

Slide 9 text

May have relatively less emphasis on Test design Specific to a Service or Domain Rigid to reuse, extend & difficult to maintain May deviate from real end-user interaction Wild West Tests @GopalAkshintala

Slide 10

Slide 10 text

Prod Code Test Code Cognitive Complexity @GopalAkshintala

Slide 11

Slide 11 text

Let’s Solve the problem with another Framework⁉ 🤷 @GopalAkshintala

Slide 12

Slide 12 text

Universal API Automation tool? Balance between strictness and flexibility Low Code and Low Cognitive Complexity Augment manual Persona testing @GopalAkshintala

Slide 13

Slide 13 text

@GopalAkshintala Source: https://www.postman.com/state-of-api/api-global-growth/#most-popular-apis

Slide 14

Slide 14 text

@GopalAkshintala Postman Templates

Slide 15

Slide 15 text

FTests & E2E Tests with Postman templates @GopalAkshintala

Slide 16

Slide 16 text

ReVoman (Rev-Woman) ⚡ ⚡ @GopalAkshintala

Slide 17

Slide 17 text

REST Assured Postman @GopalAkshintala

Slide 18

Slide 18 text

@GopalAkshintala UX

Slide 19

Slide 19 text

@GopalAkshintala UX Manual testing Automation on JVM

Slide 20

Slide 20 text

Ecosystem fitment Programming language Dev Experience Configurability CI/CD Integrable Reporting Detailing and Transparency Ease of Assertion Version Control UI Modularity Maintainability Extensibility @GopalAkshintala UX

Slide 21

Slide 21 text

Template-Driven-Testing ReVoman @GopalAkshintala

Slide 22

Slide 22 text

final var rundown = ReVoman.revUp( ) Rev up @GopalAkshintala { }

Slide 23

Slide 23 text

final var rundown = ReVoman.revUp( ) aPI @GopalAkshintala Kick.configure() …… .off())

Slide 24

Slide 24 text

Kick.configure() .templatePaths(List.of(" ... ", " ... ")) .hooks( pre( ... ), post( ... )) .globalCustomTypeAdapters() .globalSkipTypes() .environmentPaths(Set.of(" ... ", " ... ")) .dynamicEnvironment(Map.of(" ... ", " ... ")) .customDynamicVariables() .haltOnAnyFailure() /* OR */ .haltOnFailureOfTypeExcept() .skipSteps() .runOnlySteps() .off()); // Kick-off .requestConfig(unmarshallRequest())) .hooks( pre( ... ), post( ... )) .responseConfig(unmarshallResponse()) @GopalAkshintala .nodeModulesRelativePath(" ... ")

Slide 25

Slide 25 text

Custom JSON <—> POJO marshalling/ serialization and unmarshalling/ deserialization through Moshi adapters No need to add extra Annotations on POJO Ignore legacy types from marshalling/ unmarshalling JSON <—> POJO Type Safety @GopalAkshintala

Slide 26

Slide 26 text

Step Execution ⛹ @GopalAkshintala

Slide 27

Slide 27 text

Failure Hierarchy @GopalAkshintala

Slide 28

Slide 28 text

Rundown( stepReports: List, mutableEnv: PostmanEnvironment) StepReport( step: Step, requestInfo: Either > ?, preHookFailure: PreHookFailure?, responseInfo: Either> ?, postHookFailure: PostHookFailure?, envSnapshot: PostmanEnvironment) Rundown @GopalAkshintala

Slide 29

Slide 29 text

Tax {} Persist Order Price Tax Core Recipe: Place Quote/Order 🏷 💲 (Async) (Async) @GopalAkshintala

Slide 30

Slide 30 text

Low-code Just for 1 ITest @GopalAkshintala

Slide 31

Slide 31 text

Ecosystem fitment Programming language Dev Experience Configurability CI/CD Integrable Reporting Detailing and Transparency Ease of Assertion Version Control UI Modularity Maintainability Extensibility Checklist ✅ ReVoman @GopalAkshintala

Slide 32

Slide 32 text

Postman Templates hooked to automation, always stay up-to-date Find a template for every feature right in your VCS, very handy for Q3 during Release Blitz More Perks 🙌 @GopalAkshintala

Slide 33

Slide 33 text

API metrics and Analytics Payload generation Support other popular template formats Flow control using YAML config The Future 🔮 ReVoman (Rev-Woman) @GopalAkshintala

Slide 34

Slide 34 text

ReVoman (Rev-Woman) open Source @GopalAkshintala

Slide 35

Slide 35 text

sfdc.co/revoman-slack Consume-Collab-Contribute 🙌 1-1 Support 1-1 Mentorship @GopalAkshintala

Slide 36

Slide 36 text

Demo Test PQE2ETest ReVoman (Rev-Woman) Co-ordinates com.salesforce.revoman:revoman Git Repo sfdc.co/revoman 🎴Slide deck bit.ly/revoman-deck @GopalAkshintala

Slide 37

Slide 37 text

@GopalAkshintala