run test cases parallel generate reports using karate tool
Αυτό το σεμινάριο εξηγεί πώς να εκτελέσετε ορισμένες βασικές λειτουργίες στο API, να εκτελέσετε παράλληλα δοκιμαστικές περιπτώσεις και να δημιουργήσετε αναφορές με το Karate Framework:
Έχουμε μάθει πώς να δημιουργούμε ένα βασικό σενάριο δοκιμής στο προηγούμενο σεμινάριό μας, τώρα μπορούμε να προχωρήσουμε με την εκμάθηση ορισμένων βασικών λειτουργιών που μπορούν να εκτελεστούν ενώ εργαζόμαστε με το API και το Karate Framework. Υπάρχουν πολλές τέτοιες λειτουργίες και θα συζητήσουμε μερικές από αυτές που χρησιμοποιούνται συνήθως σε αυτό το σεμινάριο.
Θα διερευνήσουμε επίσης τη διαδικασία εκτέλεσης δοκιμαστικών περιπτώσεων παράλληλα ακολουθώντας μια βήμα προς βήμα προσέγγιση. Θα συζητήσουμε επίσης την τρέχουσα αναφορά που δημιουργείται αυτόματα και θα τη συγκρίνουμε με την αναφορά Cucumber που μπορούμε να δημιουργήσουμε ενσωματώνοντας μια προσθήκη.
Τι θα μάθετε:
- Εργασία με API και Karate Testing Tool
- Εκτελέστε δοκιμαστικές θήκες παράλληλα
- Ενσωματώστε το πρόσθετο αγγουριού για αναφορά
- συμπέρασμα
Εργασία με API και Karate Testing Tool
Όπως συζητήθηκε στο προηγούμενο σεμινάριο, στο .χαρακτηριστικό αρχείο που είχαμε δημιουργήσει, θα μπορούσαμε να χρησιμοποιήσουμε διαφορετικές λέξεις-κλειδιά για να εκτελέσουμε διαφορετικές λειτουργίες στο API. Καρατέ Το πλαίσιο μας παρέχει πολλές λέξεις-κλειδιά που μπορούν να χρησιμοποιηθούν για την εκτέλεση διαφόρων ενεργειών.
=> Συνιστώμενη ανάγνωση: Δοκιμή API με Karate Framework
Εκτελώντας διάφορες λειτουργίες
# 1) Εκτύπωση της απόκρισης στην κονσόλα
Τυπώνω είναι μια λέξη-κλειδί που παρέχεται από το Karate Framework για εκτύπωση του αποτελέσματος στην κονσόλα ή το αρχείο. Μία από τις πιο κοινές χρήσεις είναι η εκτύπωση της απόκρισης του API. Αυτό μπορεί να είναι πολύ χρήσιμο για τον χρήστη.
Μπορούμε να το κάνουμε χρησιμοποιώντας τις ακόλουθες γραμμές κώδικα:
Feature: fetching User Details Scenario: testing the get call for User Details Given url 'https://reqres.in/api/users/2' When method GET Then status 200 #We are printing the Response of the API using the print keyword# Then print response
Οι παραπάνω γραμμές κώδικα θα δώσουν την ακόλουθη έξοδο:
18:15:44.495 (main) INFO com.intuit.karate - (print) { 'ad': { 'company': 'StatusCode Weekly', 'text': 'A weekly newsletter focusing on software development, infrastructure, the server, performance, and the stack end of things.', 'url': 'http://statuscode.org/' }, 'data': { 'last_name': 'Weaver', 'id': 2, 'avatar': 'https://s3.amazonaws.com/uifaces/faces/twitter/josephstein/128.jpg', 'first_name': 'Janet', 'email': 'janet.weaver@reqres.in' } }
Έτσι μπορούμε να εκτυπώσουμε την απόκριση του API στην κονσόλα για λόγους ανάγνωσης, το οποίο μπορεί να χρησιμοποιηθεί τη στιγμή του εντοπισμού σφαλμάτων.
# 2) Δήλωση των μεταβλητών
Μπορούμε να δηλώσουμε τις μεταβλητές χρησιμοποιώντας τη λέξη-κλειδί ορισμός στο πλαίσιο Karate και στη συνέχεια χρησιμοποιήστε τις δηλωμένες μεταβλητές στον κώδικα όπου είναι απαραίτητο.
Στο παρακάτω παράδειγμα, έχουμε προσθέσει μερικές ακόμη γραμμές κώδικα στο υπάρχον userDetails.feature για να δηλώσετε τις μεταβλητές στο σενάριο.
Feature: fetching User Details Scenario: testing the get call for User Details Given url 'https://reqres.in/api/users/2' When method GET Then status 200 #We are printing the Response of the API using the print keyword Then print response # Declaring and assigning a string value: Given def varName = 'value' # using a variable Then print varName
# 3) Επιβεβαίωση της πραγματικής απόκρισης στην αναμενόμενη απόκριση
Το Karate Framework βοηθά στην εκτέλεση των λειτουργιών που σχετίζονται με τον ισχυρισμό χρησιμοποιώντας το αγώνας λέξη-κλειδί. ο αγώνας είναι έξυπνο, επειδή το κενό διάστημα δεν έχει σημασία και η σειρά των κλειδιών δεν είναι σημαντική.
Για χρήση λέξη-κλειδί αντιστοίχισης, πρέπει να κάνουμε τη χρήση του διπλού ίσου σημείου '==' που αντιπροσωπεύει μια σύγκριση.
Τώρα θα προσπαθήσουμε να επεξεργαστούμε μερικές χρήσεις του αγώνας λέξη-κλειδί.
α) Όταν αναφέρεται ολόκληρη η αναμενόμενη απόκριση στο ίδιο το αρχείο .feature.
Σε ορισμένες περιπτώσεις έχουμε ορισμένα δεδομένα που θα θέλαμε να επικυρώσουμε αμέσως στο ίδιο το αρχείο. Συνήθως, τέτοια είδη δεδομένων αναφέρονται κατά τον εντοπισμό σφαλμάτων του κώδικα.
Θα μπορούσαμε να κάνουμε το ίδιο στο ίδιο το αρχείο .feature όπως φαίνεται παρακάτω:
Feature: fetching User Details Scenario: testing the get call for User Details Given url 'https://reqres.in/api/users/2' When method GET Then status 200 #Asserting the reponse #response variable is holding the Actual response from API #Right hand side value is holding the expected Response And match response == {'ad':{'company':'StatusCode Weekly','text':'A weekly newsletter focusing on software development, infrastructure, the server, performance, and the stack end of things.','url':'http://statuscode.org/'},'data':{'last_name':'Weaver','id':2,'avatar': 'https://s3.amazonaws.com/uifaces/faces/twitter/josephstein/128.jpg','first_name':'Janet', 'email':'janet.weaver@reqres.in'}}
Εάν στείλετε ένα αίτημα στη διεύθυνση URL «Https://reqres.in/api/users/2» στο πρόγραμμα περιήγησης, τότε θα λάβετε την ακόλουθη απάντηση:
{ 'ad': { 'company': 'StatusCode Weekly', 'text': 'A weekly newsletter focusing on software development, infrastructure, the server, performance, and the stack end of things.', 'url': 'http://statuscode.org/' }, 'data': { 'last_name': 'Weaver', 'id': 2, 'avatar': 'https://s3.amazonaws.com/uifaces/faces/twitter/josephstein/128.jpg', 'first_name': 'Janet', 'email': 'janet.weaver@reqres.in' } }
Προσπαθούμε να επικυρώσουμε την παραπάνω απόκριση χρησιμοποιώντας το αρχείο * .feature.
Έχουμε χρησιμοποιήσει το αγώνας λέξη-κλειδί που παρέχεται από το Karate Framework, το οποίο βοηθά στην εκτέλεση διαφορετικών ειδών Ισχυρισμοί στην απόκριση API.
Σημείωση : Θα πρέπει να μετατρέψουμε την απόκριση API σε μία γραμμή για να εκτελέσουμε το παραπάνω βήμα. Θα μπορούσατε να χρησιμοποιήσετε οποιοδήποτε από τα διαθέσιμα εργαλεία Σε σύνδεση.
β) Όταν η αναμενόμενη έξοδος διατηρείται σε εξωτερικό αρχείο JSON.
Στο παραπάνω παράδειγμα, συζητήσαμε ένα σενάριο όπου είχαμε περιορισμένα δεδομένα και την ίδια απόκριση που ήταν εύκολο να χειριστεί, αλλά στα πραγματικά σενάρια, θα έχουμε τεράστια σύνολα απαντήσεων JSON που ίσως χρειαστεί να αξιολογήσουμε.
Έτσι, σε αυτές τις περιπτώσεις, είναι καλύτερο να διατηρήσετε την απόκριση στο εξωτερικό αρχείο και, στη συνέχεια, να επαληθεύσετε το ίδιο.
Στο παρακάτω παράδειγμα θα συζητήσουμε περαιτέρω το ίδιο:
- Πρέπει να δημιουργήσετε ένα ExpectedOutput.json αρχείο στο φάκελο Project όπως φαίνεται στην παρακάτω εικόνα.
Δημιουργία νέου πόρου πακέτου -> Δημιουργία νέου αρχείου ExpectedOutput.json
Και αποθηκεύστε την απόκριση JSON σε αυτό το αρχείο και αποθηκεύστε το.
Θα χρειαστεί να γράψετε τον ακόλουθο κωδικό στο userDetails.feature αρχείο:
Feature: fetching User Details Scenario: testing the get call for User Details Given url 'https://reqres.in/api/users/2' When method GET Then status 200 #Verifying the JSON response by providing same in feature file And match response == {'ad':{'company':'StatusCode Weekly','text':'A weekly newsletter focusing on software development, infrastructure, the server, performance, and the stack end of things.','url':'http://statuscode.org/'},'data':{'last_name':'Weaver','id':2,'avatar': 'https://s3.amazonaws.com/uifaces/faces/twitter/josephstein/128.jpg','first_name': 'Janet','email':'janet.weaver@reqres.in'}} #Reading the file ExpectedOutput.json and storing same response in variable expectedResult Given expectedResult=read('./resources/ExpectedOutput.json') #Asserting the Actual Response with the Expected Response And match response == expectedResult
Στο παραπάνω παράδειγμα, διαβάζουμε πρώτα το αρχείο ExpectedOutput.json και αποθήκευση της απόκρισης του στη μεταβλητή Αναμενόμενο Αποτέλεσμα χρησιμοποιώντας την ακόλουθες γραμμές κώδικα:
Given expectedResult=read('./resources/ExpectedOutput.json')
Στη συνέχεια, τοποθετούμε το Assertion χρησιμοποιώντας τις ακόλουθες γραμμές κώδικα, όπου ταιριάζουμε με το Πραγματική απάντηση με την Αναμενόμενο Αποτέλεσμα απάντηση με το « == ' χειριστής.
And match response == expectedResult
γ) Αντιστοίχιση / Επαλήθευση ορισμένων τιμών από την Απόκριση
Μέχρι τώρα έχουμε επαληθεύσει ολόκληρη την απόκριση του API, αλλά κάθε φορά που δεν θέλετε να επαληθεύσετε ολόκληρη την απάντηση. Μερικές φορές, θα θέλατε να αξιολογήσετε μόνο ένα μέρος της απάντησης. Συνήθως, κάνουμε το ίδιο όταν χρησιμοποιούμε τα άλλα εργαλεία για δοκιμές API ή κατά τη δημιουργία ενός πλαισίου.
Για να το κατανοήσουμε περαιτέρω, ας πάρουμε την ακόλουθη απάντηση JSON ως παράδειγμα:
{ 'ad': { 'company': 'StatusCode Weekly' } }
Εάν θέλουμε να επαληθεύσουμε ότι η παράμετρος Εταιρία θα πρέπει να έχει την τιμή ως StatusCode Εβδομαδιαία, τότε θα πρέπει να δημιουργήσουμε ένα JSON Path. Αυτό μπορεί να γίνει διασχίζοντας το αρχείο JSON και χρησιμοποιώντας το '.' (Χειριστής κουκκίδων)
Η διαδρομή JSON για την παραπάνω απόκριση θα είναι:
ad.company == 'StatusCode Weekly'
Ακολουθεί το απόσπασμα κώδικα που θα μας βοηθήσει στην αξιολόγηση των τιμών για τη συγκεκριμένη παράμετρο. Αυτός ο κωδικός ανήκει στο .χαρακτηριστικό αρχείο.
Feature: fetching User Details Scenario: testing the get call for User Details Given url 'https://reqres.in/api/users/2' When method GET Then status 200 #Verifying the JSON response by providing same in feature file And match response == {'ad':{'company':'StatusCode Weekly', 'text':'A weekly newsletter focusing on software development, infrastructure, the server, performance, and the stack end of things.', 'url':'http://statuscode.org/'},'data':{'last_name':'Weaver','id':2,'avatar': 'https://s3.amazonaws.com/uifaces/faces/twitter/josephstein/128.jpg', 'first_name':'Janet','email':'janet.weaver@reqres.in'}} #Reading the file ExpectedOutput.json and storing same response in variable expectedResult Given expectedResult=read('./resources/ExpectedOutput.json') #Asserting the Actual Response with the Expected Response And match response == expectedResult ##Creating JSON path to verify the values of particular parameters## And match response.ad.url == 'http://statuscode.org/' And match response.data.first_name == 'Janet'
Ακολουθεί η γραμμή κώδικα, η οποία εκτελεί τους παραμετρικούς ισχυρισμούς.
And match response.ad.url == 'http://statuscode.org/' And match response.data.first_name == 'Janet'
Χρησιμοποιώντας τη διαδρομή JSON, αξιολογούμε τις τιμές για τις παραμέτρους.
Εκτέλεση Post Operations
Μέχρι τώρα έχουμε καλύψει τα βασικά σενάρια δοκιμής ενός API όταν η μέθοδος ήταν « ΠΑΙΡΝΩ'. Αλλά όταν εργαζόμαστε στο πραγματικό περιβάλλον, πρέπει να στείλουμε πολλές πληροφορίες στον διακομιστή, οπότε στην περίπτωση αυτή, χρησιμοποιούμε το ' ΘΕΣΗ' μέθοδος .
Αυτή η ενότητα θα σας δώσει μια εικόνα για τη συνεργασία με το βασικό αίτημα POST.
Ας πάρουμε μερικές σύντομες ιδέες σχετικά με τις παραμέτρους που χρειαζόμαστε για την αποστολή του αιτήματος POST.
# 1) Δημιουργία αιτήματος POST, όταν το σώμα JSON αναφέρεται στο αρχείο * .feature
- Δημιουργήστε ένα userDetailsPost.feature χρησιμοποιώντας τα παρόμοια βήματα που αναφέρονται στο προηγούμενο σεμινάριο.
- Γράψτε τις ακόλουθες γραμμές κώδικα:
Feature: Posting User Details Scenario: testing the POST call for User Creation Given url 'https://reqres.in/api/users' And request '{'name': 'morpheus','job': 'leader'}' When method POST Then status 201
Δεδομένου ότι είναι ένα αίτημα POST, το οποίο πρέπει πάντα να συνοδεύεται από ένα σώμα που πρέπει να σταλεί στον διακομιστή για μια συγκεκριμένη απόκριση, το έχουμε αναφέρει κάτω από το ακόλουθο στοιχείο:
αίτηση: Χρειάζεται ένα σώμα JSON ως το αίτημα που απαιτείται με τη μέθοδο POST.
# 2) Δημιουργία αιτήματος POST, όταν το σώμα JSON αναφέρεται σε εξωτερικό αρχείο
Συνήθως, θα έχουμε ένα τεράστιο σώμα αιτημάτων, που θα ήταν δύσκολο να αναφερθεί στο *.χαρακτηριστικό αρχείο. Επομένως, είναι καλύτερο να το διατηρήσετε στο εξωτερικό αρχείο.
- Πρέπει να δημιουργήσετε ένα αρχείο PostBody.json στο φάκελο Project όπως φαίνεται παρακάτω. Δημιουργία νέου πόρου πακέτου -> Δημιουργία νέου αρχείου PostBody.json και αποθήκευση του σώματος JSON σε αυτό το αρχείο και αποθήκευση.
Σημείωση: Αναφέραμε το σώμα της μεθόδου POST στο παραπάνω αρχείο JSON.
- Θα χρειαστεί να γράψετε τον ακόλουθο κώδικα στο userDetailsPost .χαρακτηριστικό αρχείο:
Feature: Posting User Details Scenario: testing the POST call for User Creation using External File Given url 'https://reqres.in/api/users' Given postBody=read('./resources/PostBody.json') And request postBody When method POST Then status 201
Διαβάζουμε το σώμα JSON από το PostBody.json χρησιμοποιώντας τις ακόλουθες γραμμές κώδικα:
Given postBody=read('./resources/PostBody.json')
Σημείωση: Ολα τα userDeatils.feature Τα αρχεία που έχουμε δημιουργήσει μέχρι τώρα θα απαιτούν το βασικό TestRunner.java αρχείο για να τα εκτελέσετε, το οποίο δημιουργήσαμε στο σεμινάριο Basic Test Script όπως φαίνεται παρακάτω:
import org.junit.runner.RunWith; import com.intuit.karate.junit4.Karate; @RunWith(Karate.class) public class TestRunner { }
Εκτελέστε δοκιμαστικές θήκες παράλληλα
Τώρα, αφού έχουμε μάθει τα βήματα για να δημιουργήσουμε ένα βασικό σενάριο δοκιμής και εκτελέσαμε κάποιες βασικές λειτουργίες στο API, είναι καιρός να ξεκινήσουμε να δουλεύουμε στο πραγματικό περιβάλλον.
Συνήθως, πρέπει να εκτελέσουμε τις δοκιμαστικές περιπτώσεις παράλληλα, για να κάνουμε την εκτέλεση πιο γρήγορη. Βασικά, η ιδέα είναι να έχετε περισσότερη παραγωγή σε λιγότερο χρόνο.
Αυτό είναι ένα βασικό χαρακτηριστικό του πλαισίου και δεν εξαρτάται από το JUnit, το Maven ή το Grade. Μας επιτρέπει:
- Επιλέξτε εύκολα τις δυνατότητες και τις ετικέτες για να εκτελέσετε τις δοκιμαστικές σουίτες με απλό τρόπο.
- Δείτε τα παράλληλα αποτελέσματα στον φάκελο surefire-plugin.
- Μπορούμε ακόμη και να ενσωματώσουμε τις αναφορές Cucumber JSON για καλύτερη διεπαφή χρήστη (η οποία θα συζητηθεί σύντομα).
Στο Karate Framework, δεν χρειάζεται να κάνουμε πολλά βήματα, για να ξεκινήσουμε την παράλληλη εκτέλεση των δοκιμαστικών μας περιπτώσεων. Απλά πρέπει να ακολουθήσουμε τα ακόλουθα βήματα:
1) Τώρα πρέπει να αλλάξουμε το TestRunner.java αρχείο που χρησιμοποιούμε μέχρι τώρα. Ο κωδικός για την παράλληλη εκτέλεση πρέπει να γραφτεί στο παραπάνω αρχείο.
Λάβετε υπόψη την ακόλουθη γραμμή, ενώ εκτελείτε τον κωδικό σας στο Παράλληλο:
πώς να γράψετε τον επιλογέα css στο σελήνιο
** Δεν μπορούμε να χρησιμοποιήσουμε το σχολιασμό @RunWith (Karate.class) όταν προσπαθούμε να εργαστούμε σε ένα παράλληλο περιβάλλον.
Ανοίξτε το πρωτότυπο TestRunner.java αρχειοθετήστε και χρησιμοποιήστε τον ακόλουθο κώδικα τώρα:
import com.intuit.karate.Results; import com.intuit.karate.Runner; import org.junit.Test; // important: do not use @RunWith(Karate.class) ! public class TestRunner { @Test public void testParallel() { Results results = Runner.parallel(getClass(),5); } }
** Ο ακόλουθος κωδικός θα ισχύει για JUnit 4 Maven εξάρτηση
Στο απόσπασμα κώδικα παραπάνω, έχουμε συμπεριλάβει την παρακάτω γραμμή κώδικα-
Αποτελέσματα αποτελεσμάτων = Runner.parallel (getClass (), 5);
Αυτή η γραμμή καθοδηγεί να εκτελέσετε το Instance of the Test Cases in Parallel, ανακτώντας δυναμικά τα μαθήματα στο Runtime.
2) Δημιουργήστε ένα αντίγραφο userDetails.feature αρχείο όπως αναφέρεται παρακάτω στο src / test / java ντοσιέ.
Τώρα είμαστε όλοι έτοιμοι για την παράλληλη εκτέλεση με δύο . χαρακτηριστικά αρχείο.
3) Παω σε TestRunner.java αρχείο που δημιουργήθηκε στο παραπάνω βήμα και εκτελέστε το ως JUnit Test. Με αυτό, θα εκτελέσουμε τις δοκιμαστικές μας περιπτώσεις σε παράλληλη μορφή.
Για εύκολη αναγνωσιμότητα, ορισμένες πληροφορίες παρουσιάζονται από το Karate Framework στην κονσόλα, όποτε ολοκληρωθεί η εκτέλεση της δοκιμής.
Το αποτέλεσμα μοιάζει με το εξής:
Με την παράλληλη εκτέλεση, όλα τα χαρακτηριστικά θα εκτελεστούν σε παράλληλο και τα σενάρια θα εκτελούνται σε παράλληλη μορφή.
Ακολουθώντας τα παραπάνω βήματα, θα μπορείτε να ξεκινήσετε την πολύ βασική παράλληλη εκτέλεση του τεστ API, χρησιμοποιώντας το Karate Framework.
** Μπορείτε να μελετήσετε παράλληλες δοκιμές διασχίζοντας τα διάφορα φίλτρα της σελίδας Παράλληλη εκτέλεση
Ενσωματώστε το πρόσθετο αγγουριού για αναφορά
Καθώς χρησιμοποιούμε το Δρομέας JUnit για την εκτέλεση διαφορετικών σεναρίων που έχουν αναφερθεί στα διαφορετικά *.χαρακτηριστικό αρχεία, δημιουργεί αυτόματα μια αναφορά για κάθε ένα από τα αρχεία χαρακτηριστικών που είναι αποθηκευμένα στη διαδρομή target / surefire-αναφορές.
Δημιουργεί ένα Βασική αναφορά μορφοποίησης διεπαφής χρήστη για την παρουσίαση των δοκιμαστικών περιπτώσεων που έχουν εκτελεστεί.
Όμως, οι αναφορές που δημιουργούνται δεν είναι πολύ ευχάριστες από την άποψη της διεπαφής χρήστη και για να μοιραστούμε τις Αναφορές με τα ενδιαφερόμενα μέρη, χρειαζόμαστε κάτι που να είναι πιο φιλικό προς τον χρήστη και εύκολα κατανοητό.
Προκειμένου να επιτευχθεί μια τέτοια μορφή αναφοράς, το Karate Framework δίνει μια επιλογή ενσωμάτωσης Πρόσθετο αναφοράς αγγουριών το οποίο θα μας βοηθήσει στη δημιουργία μιας γραφικής μορφής αναφοράς, η οποία θα είναι πιο εμφανής.
Ακολουθούν τα βήματα για την ενσωμάτωση του ίδιου:
# 1) Προσθέστε τα ακόλουθα Αναφορά αγγουριών εξάρτηση από το POM.xml
net.masterthought cucumber-reporting 3.8.0 test
#δύο) Επεξεργαστείτε το αρχείο TestRunner.java όταν υπάρχει μόνο ένα *.χαρακτηριστικό αρχείο στο έργο.
Πρέπει να ενημερώσουμε το αρχείο TestRunner.java, με την ακόλουθη μέθοδο createReport () για την προσθήκη Cucumber.
public class TestRunner { @Test public void testParallel() { generateReport(results.getReportDir()); assertTrue(results.getErrorMessages(), results.getFailCount() == 0); } public static void generateReport(String karateOutputPath) { Collection jsonFiles = FileUtils.listFiles(new File(karateOutputPath), new String() {'json'}, true); final List jsonPaths = new ArrayList(jsonFiles.size()); jsonFiles.forEach(file -> jsonPaths.add(file.getAbsolutePath())); Configuration config = new Configuration(new File('target'), 'demo'); ReportBuilder reportBuilder = new ReportBuilder(jsonPaths, config); reportBuilder.generateReports(); } }
Στον κωδικό που αναφέρεται παραπάνω, εκτελούμε τις ακόλουθες ενέργειες:
- Δημιουργία νέας παρουσίας αρχείου
- Παροχή της διαδρομής για την αποθήκευση των αρχείων στον φάκελο προορισμού
- Δημιουργία αντικειμένου ReportBuilder που θα δημιουργήσει μια νέα αναφορά αγγουριού
Σημείωση : Ο παραπάνω κώδικας λειτουργεί καλά όταν έχουμε single *. χαρακτηριστικό αρχείο στο έργο μας.
# 3) Επεξεργαστείτε το αρχείο TestRunner.java όταν υπάρχουν πολλαπλάσιο *. χαρακτηριστικό αρχεία στο Έργο.
Θα χρειαστεί να προσθέσουμε μια γραμμή κώδικα (επισημαίνεται με έντονους χαρακτήρες παρακάτω) για να διασφαλίσουμε τη φροντίδα της παράλληλης εκτέλεσης, ενώ τα σενάρια εκτελούνται για τη δημιουργία αναφορών.
public class TestRunner { @Test public void testParallel() { System.setProperty('karate.env', 'demo'); // ensure reset if other tests (e.g. mock) had set env in CI Results results = Runner.parallel(getClass(),5); generateReport(results.getReportDir()); assertTrue(results.getErrorMessages(), results.getFailCount() == 0); } public static void generateReport(String karateOutputPath) { Collection jsonFiles = FileUtils.listFiles(new File(karateOutputPath), new String() {'json'}, true); final List jsonPaths = new ArrayList(jsonFiles.size()); jsonFiles.forEach(file -> jsonPaths.add(file.getAbsolutePath())); Configuration config = new Configuration(new File('target'), 'demo'); ReportBuilder reportBuilder = new ReportBuilder(jsonPaths, config); reportBuilder.generateReports(); } }
Αφού εκτελέσετε τα παραπάνω βήματα, θα μπορέσουμε να δημιουργήσουμε με επιτυχία μια αναπαριστώμενη αναφορά γραφικών διεπαφής χρήστη χρησιμοποιώντας το Αγγούρι - αναφορά συνδέω.
Μπορούμε να βρούμε την αναφορά στην ακόλουθη διαδρομή στο έργο μας, όπως φαίνεται στην παρακάτω εικόνα:
Η ακόλουθη αναφορά δημιουργήθηκε για το έργο μας, για όλες τις λειτουργίες που έχουμε εκτελέσει μέχρι τώρα σε αυτό το Karate Framework Tutorial:
συμπέρασμα
Συνοψίζοντας, σε αυτό το σεμινάριο έχουμε συζητήσει τις βασικές λειτουργίες που είναι χρήσιμες σε καθημερινή βάση, ενώ συνεργαζόμαστε με το Πλαίσιο καράτε και πώς να εκτελέσετε πολλαπλά αρχεία * .feature παράλληλα. Μάθαμε επίσης να δημιουργούμε μια γραφική αναφορά για τους χρήστες που χρησιμοποιούν το Αναφορά αγγουριών συνδέω.
Αρχικά, συζητήσαμε τις βασικές λειτουργίες που μπορούν να εκτελεστούν στο API. Συζητήσαμε πώς μπορούμε να στείλουμε το σώμα / αίτημα POST στον διακομιστή, είτε αναφέροντας το σώμα στο ίδιο το αρχείο * .feature (το οποίο συνήθως δεν συνιστάται πρακτική) είτε χρησιμοποιώντας ένα εξωτερικό αρχείο (μια συνιστώμενη πρακτική, προκειμένου να διατηρήστε έναν καθαρό κωδικό).
Δεύτερον, αφού ακολουθήσαμε μερικά βασικά βήματα, θα μπορούσαμε να εκτελέσουμε με επιτυχία το αποτέλεσμα της δοκιμής για δύο *.χαρακτηριστικό αρχεία που εκτελέστηκαν παράλληλα, απλά προσθέτοντας μερικές γραμμές κώδικα στο TestRunner.java αρχείο που επιτρέπει την έναρξη της παράλληλης εκτέλεσης.
Πέρα από αυτό, μάθαμε πώς να μετατρέψουμε την εγγενή αναφορά JUnit Test σε μια αναφορά αγγουριού ενσωματώνοντας το Αναφορά αγγουριών συνδέω. Η προσθήκη μας επιτρέπει να δημιουργούμε αναφορές που έχουν καλύτερη διεπαφή χρήστη, είναι πολύ πιο κατανοητές για τον χρήστη, και ως εκ τούτου παρέχουν μια καλύτερη εμπειρία χρήστη για τα ενδιαφερόμενα μέρη με τους οποίους κοινοποιούνται αυτές οι αναφορές.
Μέχρι τώρα, θα πρέπει να μπορείτε να εκτελέσετε κάποια βασική λειτουργία, να εκτελέσετε τις δοκιμαστικές θήκες παράλληλα και να δημιουργήσετε μια ευανάγνωστη αναφορά για τους χρήστες.
Συνιστώμενη ανάγνωση
- Tutorial Karate Framework: Αυτοματοποιημένη δοκιμή API με Karate
- 10 καλύτερα εργαλεία δοκιμών API το 2021 (SOAP και REST API Testing Tools)
- Τρόπος εκτέλεσης αγγουριού με Jenkins: Εκμάθηση με παραδείγματα
- Οδηγός για τη δημιουργία εκτεταμένων αναφορών στο Selenium WebDriver
- Αναφορά Specflow: Τρόπος δημιουργίας αναφορών δοκιμών και εκτέλεσης επιλεκτικών δοκιμών
- Τρόπος διαχείρισης απαιτήσεων, εκτέλεσης δοκιμαστικών περιπτώσεων και δημιουργίας αναφορών χρησιμοποιώντας TestLink - Tutorial # 2
- Εκτέλεση των δοκιμών Appium σας παράλληλα χρησιμοποιώντας το Appium Studio για το Eclipse
- Τρόπος εκτέλεσης εκτεταμένων εκτελέσεων δοκιμών Appium παράλληλα