SlideShare a Scribd company logo
1 of 11
COMPARISON OF
GOLANG TESTING
FRAMEWORKS
Dushyant Bhalgami
Software Architect
@autoMate_
OUTLINE
BDD Testing Frameworks
 Ginkgo + Gomega
 Comparison with Cucumber
Test Execution
Performance
 Test Scenario
 Performance Statistics
Unit Testing Framework
 ‘testing’ + ‘testify’
 Comparison with JUnit
REST API Testing
Frameworks
 Frisby
 Comparison with RESTAssured
UNIT TESTING – “testing + testify”
 What is Unit Testing?
 Unit testing is a software development process in which the smallest testable parts
of an application, called units, are individually and independently scrutinized for
proper operation.
 Unit Testing covered by GoLang’s ‘testing’ package
 ‘testing’ package’s few features
 Benchmarking
 Code Coverage
 Parallel Execution
 ‘testify’ extension complements ‘testing’ package by providing
support for
 Assertion
 Mocking
“testing + testify” v/s “JUnit”
 JUnit is famous unit testing framework for Java
 Improvement Areas for GoLang’s ‘testing’ package:
 Test Fixtures
 Parameterized Test
 Data Provider
BDD TESTING – “Ginkgo + Gomega”
 What is BDD?
 Behavior-driven development (BDD) is a software development methodology in which an
application is specified and designed by describing how its behavior should appear to an
outside observer.
 GoLang’s BDD Testing Frameworks:
 Ginkgo
 GoConvey
 GoDog
 GoSpec
 GoSpecify
 Ginkgo + Gomega:
 Ginkgo is BDD style GoLang testing framework
 Gomega is matcher/assertion library
“Ginkgo + Gomega” v/s “Cucumber”
 Features of Ginkgo
 Test Fixtures
 Parallel Specs
 Asynchronous Tests
 Table Driven Tests
 ‘Cucumber’ is well-known BDD Testing Framework, having bindings
for Ruby, Java, JavaScript etc.
 Improvement Areas for ‘Ginkgo’:
 Feature Files
 Integration with Selenium for Web Testing
 Performance
REST API TESTING – “Frisby”
 What is REST API Testing?
 API testing is in many respects like testing software at the user-interface level,
only instead of testing by means of standard user inputs and outputs, you use
software to send calls to the API, get output, and validate it.
 GoLang’s REST API Testing Frameworks:
 Frisby
 RestIt
 Frisby
 It’s a REST API Testing framework, inspired by Frisby.js
 Simple to Implement Tests
“Frisby” v/s “RESTAssured”
 Features of Frisby
 Covers all basic HTTP methods, like Get, Post, Put, Patch, Delete
 Provides Assertions
 JSON & XML Parsers
 ‘RESTAssured’ is well-known REST API Testing Framework for
Java
 Improvement Areas for ‘Frisby’:
 BDD style
 Continuous Integration
 Data Provider / Table Driven Tests
TEST SCENARIO
 Very Basic Test Scenario, which will define type of ‘Triangle’
based on dimension of sides of triangle
Side3 = ‘z’
x == y == z
“Equilateral”
x == y || y == z || x == z
“Isosceles”
x != y != z
“Scalene”
PERFORMANCE STATISTICS
UNIT Testing BDD Testing REST API Testing
Go (Testing +
Testify)
JUnit Ginkgo Cucumber Frisby RESTAssured
Run_1# 0.008* 0.031 1.49 0.511 0.056 2.18
Run_2 0.009 0.026 1.36 0.531 0.056 2.14
Run_3 0.011 0.026 1.38 0.521 0.057 2.11
Run_4 0.009 0.028 1.38 0.532 0.056 2.04
Run_5 0.009 0.026 1.36 0.534 0.056 2.18
Run_6 0.009 0.028 1.39 0.532 0.057 2.07
Run_7 0.009 0.026 1.37 0.552 0.054 2.07
Run_8 0.009 0.026 1.39 0.507 0.053 2.07
Run_9 0.009 0.026 1.35 0.536 0.055 2.09
Run_10 0.009 0.026 1.39 0.518 0.056 2.1
Average
Execution Time
0.0091 0.0269 1.386 0.5274 0.0556 2.105
* All Times are in Seconds
# Each Run consisting execution of 100 TestCases per
framework
dushyantbhalgami@gmail.com @autoMate_
https://in.linkedin.com/in/dushyantbhalgami

More Related Content

What's hot

An Introduction To Jenkins
An Introduction To JenkinsAn Introduction To Jenkins
An Introduction To JenkinsKnoldus Inc.
 
Container based CI/CD on GitHub Actions
Container based CI/CD on GitHub ActionsContainer based CI/CD on GitHub Actions
Container based CI/CD on GitHub ActionsCasey Lee
 
Introduction to GitHub Actions
Introduction to GitHub ActionsIntroduction to GitHub Actions
Introduction to GitHub ActionsBo-Yi Wu
 
Git branching strategies
Git branching strategiesGit branching strategies
Git branching strategiesjstack
 
Continuous integration
Continuous integrationContinuous integration
Continuous integrationamscanne
 
How to Build Your Own Test Automation Framework?
How to Build Your Own Test Automation Framework?How to Build Your Own Test Automation Framework?
How to Build Your Own Test Automation Framework?Dmitry Buzdin
 
Introduction to Bdd and cucumber
Introduction to Bdd and cucumberIntroduction to Bdd and cucumber
Introduction to Bdd and cucumberNibu Baby
 
Git Series. Episode 3. Git Flow and Github-Flow
Git Series. Episode 3. Git Flow and Github-FlowGit Series. Episode 3. Git Flow and Github-Flow
Git Series. Episode 3. Git Flow and Github-FlowMikhail Melnik
 
iOS Architecture
iOS ArchitectureiOS Architecture
iOS ArchitectureJacky Lian
 
Using GitLab CI
Using GitLab CIUsing GitLab CI
Using GitLab CIColCh
 
Sample Technical Requirement Document (TRD)
Sample Technical Requirement Document (TRD)Sample Technical Requirement Document (TRD)
Sample Technical Requirement Document (TRD)Sunil Kumar Gunasekaran
 
Write microservice in golang
Write microservice in golangWrite microservice in golang
Write microservice in golangBo-Yi Wu
 

What's hot (20)

An Introduction To Jenkins
An Introduction To JenkinsAn Introduction To Jenkins
An Introduction To Jenkins
 
Container based CI/CD on GitHub Actions
Container based CI/CD on GitHub ActionsContainer based CI/CD on GitHub Actions
Container based CI/CD on GitHub Actions
 
Introduction to android testing
Introduction to android testingIntroduction to android testing
Introduction to android testing
 
Introduction to GitHub Actions
Introduction to GitHub ActionsIntroduction to GitHub Actions
Introduction to GitHub Actions
 
Git Branching Model
Git Branching ModelGit Branching Model
Git Branching Model
 
Git branching strategies
Git branching strategiesGit branching strategies
Git branching strategies
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
How to Build Your Own Test Automation Framework?
How to Build Your Own Test Automation Framework?How to Build Your Own Test Automation Framework?
How to Build Your Own Test Automation Framework?
 
Introduction to Bdd and cucumber
Introduction to Bdd and cucumberIntroduction to Bdd and cucumber
Introduction to Bdd and cucumber
 
CI/CD with Github Actions
CI/CD with Github ActionsCI/CD with Github Actions
CI/CD with Github Actions
 
kubernetes practice
kubernetes practicekubernetes practice
kubernetes practice
 
Git Series. Episode 3. Git Flow and Github-Flow
Git Series. Episode 3. Git Flow and Github-FlowGit Series. Episode 3. Git Flow and Github-Flow
Git Series. Episode 3. Git Flow and Github-Flow
 
Github in Action
Github in ActionGithub in Action
Github in Action
 
Postman
PostmanPostman
Postman
 
iOS Architecture
iOS ArchitectureiOS Architecture
iOS Architecture
 
Using GitLab CI
Using GitLab CIUsing GitLab CI
Using GitLab CI
 
Sample Technical Requirement Document (TRD)
Sample Technical Requirement Document (TRD)Sample Technical Requirement Document (TRD)
Sample Technical Requirement Document (TRD)
 
GitHub Presentation
GitHub PresentationGitHub Presentation
GitHub Presentation
 
Clean Architecture
Clean ArchitectureClean Architecture
Clean Architecture
 
Write microservice in golang
Write microservice in golangWrite microservice in golang
Write microservice in golang
 

Similar to Comparative Analysis Of GoLang Testing Frameworks

Java Test Automation for REST, Web and Mobile
Java Test Automation for REST, Web and MobileJava Test Automation for REST, Web and Mobile
Java Test Automation for REST, Web and MobileElias Nogueira
 
Automation test framework with cucumber – BDD
Automation test framework with cucumber – BDDAutomation test framework with cucumber – BDD
Automation test framework with cucumber – BDD123abcda
 
Behavior Driven Development by Example
Behavior Driven Development by ExampleBehavior Driven Development by Example
Behavior Driven Development by ExampleNalin Goonawardana
 
Wso2 italia Open Break session #7 - Test di API e microservizi nelle architet...
Wso2 italia Open Break session #7 - Test di API e microservizi nelle architet...Wso2 italia Open Break session #7 - Test di API e microservizi nelle architet...
Wso2 italia Open Break session #7 - Test di API e microservizi nelle architet...Profesia Srl, Lynx Group
 
Pragmatic Parallels: Java and JavaScript
Pragmatic Parallels: Java and JavaScriptPragmatic Parallels: Java and JavaScript
Pragmatic Parallels: Java and JavaScriptdavejohnson
 
Top api testing tools in 2022
Top api testing tools in 2022Top api testing tools in 2022
Top api testing tools in 2022Aparna Sharma
 
Certified Software Testing Professional
Certified Software Testing ProfessionalCertified Software Testing Professional
Certified Software Testing ProfessionalNarender Rana
 
Colorful world-of-visual-automation-testing-latest
Colorful world-of-visual-automation-testing-latestColorful world-of-visual-automation-testing-latest
Colorful world-of-visual-automation-testing-latestOnur Baskirt
 
Agile Open Source Performance Test Workshop for Developers, Testers, IT Ops
Agile Open Source Performance Test Workshop for Developers, Testers, IT OpsAgile Open Source Performance Test Workshop for Developers, Testers, IT Ops
Agile Open Source Performance Test Workshop for Developers, Testers, IT OpsClever Moe
 
Software Testing Certification
Software Testing CertificationSoftware Testing Certification
Software Testing CertificationVskills
 
Front end unit testing using jasmine
Front end unit testing using jasmineFront end unit testing using jasmine
Front end unit testing using jasmineGil Fink
 
API Testing Impact on Development Process.pdf
API Testing Impact on Development Process.pdfAPI Testing Impact on Development Process.pdf
API Testing Impact on Development Process.pdffleekitsolutions2
 
automation framework
automation frameworkautomation framework
automation frameworkANSHU GOYAL
 
software testing technique
software testing techniquesoftware testing technique
software testing techniqueRana assad ali
 

Similar to Comparative Analysis Of GoLang Testing Frameworks (20)

Unit testing with Jasmine
Unit testing with JasmineUnit testing with Jasmine
Unit testing with Jasmine
 
Java Test Automation for REST, Web and Mobile
Java Test Automation for REST, Web and MobileJava Test Automation for REST, Web and Mobile
Java Test Automation for REST, Web and Mobile
 
Rajiv Profile
Rajiv ProfileRajiv Profile
Rajiv Profile
 
Automation test framework with cucumber – BDD
Automation test framework with cucumber – BDDAutomation test framework with cucumber – BDD
Automation test framework with cucumber – BDD
 
Behavior Driven Development by Example
Behavior Driven Development by ExampleBehavior Driven Development by Example
Behavior Driven Development by Example
 
Wso2 italia Open Break session #7 - Test di API e microservizi nelle architet...
Wso2 italia Open Break session #7 - Test di API e microservizi nelle architet...Wso2 italia Open Break session #7 - Test di API e microservizi nelle architet...
Wso2 italia Open Break session #7 - Test di API e microservizi nelle architet...
 
Pragmatic Parallels: Java and JavaScript
Pragmatic Parallels: Java and JavaScriptPragmatic Parallels: Java and JavaScript
Pragmatic Parallels: Java and JavaScript
 
Top api testing tools in 2022
Top api testing tools in 2022Top api testing tools in 2022
Top api testing tools in 2022
 
Certified Software Testing Professional
Certified Software Testing ProfessionalCertified Software Testing Professional
Certified Software Testing Professional
 
Colorful world-of-visual-automation-testing-latest
Colorful world-of-visual-automation-testing-latestColorful world-of-visual-automation-testing-latest
Colorful world-of-visual-automation-testing-latest
 
Agile Open Source Performance Test Workshop for Developers, Testers, IT Ops
Agile Open Source Performance Test Workshop for Developers, Testers, IT OpsAgile Open Source Performance Test Workshop for Developers, Testers, IT Ops
Agile Open Source Performance Test Workshop for Developers, Testers, IT Ops
 
Software Testing Certification
Software Testing CertificationSoftware Testing Certification
Software Testing Certification
 
Software Testing
Software TestingSoftware Testing
Software Testing
 
Front end unit testing using jasmine
Front end unit testing using jasmineFront end unit testing using jasmine
Front end unit testing using jasmine
 
NITIN KUMAR BASWAN_Resume
NITIN KUMAR BASWAN_ResumeNITIN KUMAR BASWAN_Resume
NITIN KUMAR BASWAN_Resume
 
Software testing (2)
Software testing (2)Software testing (2)
Software testing (2)
 
API Testing Impact on Development Process.pdf
API Testing Impact on Development Process.pdfAPI Testing Impact on Development Process.pdf
API Testing Impact on Development Process.pdf
 
automation framework
automation frameworkautomation framework
automation framework
 
software testing technique
software testing techniquesoftware testing technique
software testing technique
 
Coding Naked
Coding NakedCoding Naked
Coding Naked
 

Recently uploaded

CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordAsst.prof M.Gokilavani
 
Double Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueDouble Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueBhangaleSonal
 
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptxBSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptxfenichawla
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...roncy bisnoi
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdfKamal Acharya
 
chapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineeringchapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineeringmulugeta48
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . pptDineshKumar4165
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXssuser89054b
 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756dollysharma2066
 
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfKamal Acharya
 
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Bookingroncy bisnoi
 
Generative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPTGenerative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPTbhaskargani46
 
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Bookingdharasingh5698
 
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...Call Girls in Nagpur High Profile
 
Unleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leapUnleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leapRishantSharmaFr
 
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Bookingroncy bisnoi
 

Recently uploaded (20)

CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
 
Double Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueDouble Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torque
 
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptxBSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
 
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
 
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdf
 
NFPA 5000 2024 standard .
NFPA 5000 2024 standard                                  .NFPA 5000 2024 standard                                  .
NFPA 5000 2024 standard .
 
chapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineeringchapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineering
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . ppt
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
 
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
 
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
 
Generative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPTGenerative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPT
 
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
 
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
 
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
 
Unleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leapUnleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leap
 
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
 

Comparative Analysis Of GoLang Testing Frameworks

  • 1. COMPARISON OF GOLANG TESTING FRAMEWORKS Dushyant Bhalgami Software Architect @autoMate_
  • 2. OUTLINE BDD Testing Frameworks  Ginkgo + Gomega  Comparison with Cucumber Test Execution Performance  Test Scenario  Performance Statistics Unit Testing Framework  ‘testing’ + ‘testify’  Comparison with JUnit REST API Testing Frameworks  Frisby  Comparison with RESTAssured
  • 3. UNIT TESTING – “testing + testify”  What is Unit Testing?  Unit testing is a software development process in which the smallest testable parts of an application, called units, are individually and independently scrutinized for proper operation.  Unit Testing covered by GoLang’s ‘testing’ package  ‘testing’ package’s few features  Benchmarking  Code Coverage  Parallel Execution  ‘testify’ extension complements ‘testing’ package by providing support for  Assertion  Mocking
  • 4. “testing + testify” v/s “JUnit”  JUnit is famous unit testing framework for Java  Improvement Areas for GoLang’s ‘testing’ package:  Test Fixtures  Parameterized Test  Data Provider
  • 5. BDD TESTING – “Ginkgo + Gomega”  What is BDD?  Behavior-driven development (BDD) is a software development methodology in which an application is specified and designed by describing how its behavior should appear to an outside observer.  GoLang’s BDD Testing Frameworks:  Ginkgo  GoConvey  GoDog  GoSpec  GoSpecify  Ginkgo + Gomega:  Ginkgo is BDD style GoLang testing framework  Gomega is matcher/assertion library
  • 6. “Ginkgo + Gomega” v/s “Cucumber”  Features of Ginkgo  Test Fixtures  Parallel Specs  Asynchronous Tests  Table Driven Tests  ‘Cucumber’ is well-known BDD Testing Framework, having bindings for Ruby, Java, JavaScript etc.  Improvement Areas for ‘Ginkgo’:  Feature Files  Integration with Selenium for Web Testing  Performance
  • 7. REST API TESTING – “Frisby”  What is REST API Testing?  API testing is in many respects like testing software at the user-interface level, only instead of testing by means of standard user inputs and outputs, you use software to send calls to the API, get output, and validate it.  GoLang’s REST API Testing Frameworks:  Frisby  RestIt  Frisby  It’s a REST API Testing framework, inspired by Frisby.js  Simple to Implement Tests
  • 8. “Frisby” v/s “RESTAssured”  Features of Frisby  Covers all basic HTTP methods, like Get, Post, Put, Patch, Delete  Provides Assertions  JSON & XML Parsers  ‘RESTAssured’ is well-known REST API Testing Framework for Java  Improvement Areas for ‘Frisby’:  BDD style  Continuous Integration  Data Provider / Table Driven Tests
  • 9. TEST SCENARIO  Very Basic Test Scenario, which will define type of ‘Triangle’ based on dimension of sides of triangle Side3 = ‘z’ x == y == z “Equilateral” x == y || y == z || x == z “Isosceles” x != y != z “Scalene”
  • 10. PERFORMANCE STATISTICS UNIT Testing BDD Testing REST API Testing Go (Testing + Testify) JUnit Ginkgo Cucumber Frisby RESTAssured Run_1# 0.008* 0.031 1.49 0.511 0.056 2.18 Run_2 0.009 0.026 1.36 0.531 0.056 2.14 Run_3 0.011 0.026 1.38 0.521 0.057 2.11 Run_4 0.009 0.028 1.38 0.532 0.056 2.04 Run_5 0.009 0.026 1.36 0.534 0.056 2.18 Run_6 0.009 0.028 1.39 0.532 0.057 2.07 Run_7 0.009 0.026 1.37 0.552 0.054 2.07 Run_8 0.009 0.026 1.39 0.507 0.053 2.07 Run_9 0.009 0.026 1.35 0.536 0.055 2.09 Run_10 0.009 0.026 1.39 0.518 0.056 2.1 Average Execution Time 0.0091 0.0269 1.386 0.5274 0.0556 2.105 * All Times are in Seconds # Each Run consisting execution of 100 TestCases per framework