Tuesday, April 9, 2019

JMeter Vs Gatling Automation tools


JMeter Vs Gatling Automation tools



S.No. Features Jmeter Gatling
1 First released 1998 2011
2 Based on Java Scala
3 Size (of tool code base) approx 500K lines code approx 50K lines code
4 HTTP Yes Yes
5 HTTPS Yes Yes
6 WebSocket Yes(external plugins may be required) Yes
7 Rest Apis Yes Yes
8 Soap Services Yes No
9 FTP Yes No
10 JDBC Yes No
11 Database via JDBC Yes No
12 JMS Yes Yes
13 TCP Yes No
14 HTTP Recorder Yes (Built in proxy recorder to generate the requests from the user navigation.) Yes (Has a separate Web proxy recorder, which works the same way as the JMeter recorder. It generates a Scala simulation from the recorded user session.)
15 Distributed Testing (Distributed Testing is the ability to use several slaves computers as load generators to spread the load over multiple machines to be able to simulate more concurrent users.) Yes No
16 Scripting GUI Scripting Code Scripting
17 Command-Line Mode Yes Yes
18 Assertions Yes Yes
19 Response Extractors Yes Yes
20 Documentation (Installation, Quick Start, Reference Guide, Tutorials, Issue Tracker, On Stackoverflow) Yes Yes
21 Archive Format Setup Yes Yes
22 Installer Format Setup No No
23 Command-line Executable Setup Yes Yes
24 GUI Executable Setup Yes No
25 Requires Java Setup Yes Yes
26 Target Audience QA Engineers Devops Engineers
27 Performance One Thread = One User Paradigm.
The user waits for the server response when sending a request.
Synchronous processing.
Simulate multiple virtual users with a single Thread.
It allows fully asynchronous computing
ASynchronous processing.
28 Test Execution To launch a test with JMeter, there are two methods:
1. Launch the GUI, then launch the test inside GUI,
2. Launch the test via command-line (recommended because using GUI listeners consumes a lot of memory.).
To launch a test with gatling, run the .sh script and select the simulation (within user-files/simulations folder).

During the test run, gatling displays statistics within the console. The results of the test can be viewed at the end of the test. Gatling generates a generic test report with response time, number of OK/KO transactions and detailed statistics for every request. The report is not customizable.
29 Command-line live metrics during test Yes Yes
30 HTML Report Yes Yes
31 Raw Results during test execution Yes Yes
32 UI Results of test Yes No
33 Graphite Support Yes Yes
34 Grafana + InfluxDB Yes Yes
35 Cloud load testing Yes (Better cloud support than Gatling). Yes (But not better that JMeter).

Thursday, November 13, 2014

Programming with Swift for iOS !


What is swift?
  • A new programming language for iOS and OSX app development.
  • Adopts modern programming patterns and features to make programming easier and flexible.
  • Provides seamless access to existing Cocoa frameworks and mix-and-match interoperability with Objective-C code.
  • First industrial-quality systems programming language that is as expressive and enjoyable as a scripting language.

New in swift
  • Support for functional programming patterns like maps and filters.
  • Structs support protocols, methods and extensions.
  • Support for Generics and optionals.
  • Support for tuples and hence functions that can return multiple values.
Why use swift?
  • About 2.8X faster than objective C.
  • A compiled programming language with syntax similar to scripting languages.
  • Improved readability over other languages by removing extraneous parenthesis and semi colons.
  • Enums and control flows have been vastly improved.

Tools Needed
  • Needs Apple LLVM 6.0 for compilation, which is shipped with Xcode 6.0.
  • Uses the same runtime as existing Objective-C system on Mac OS and iOS.
  • Backward compatible up-to iOS 7.0.
Introduction to “Playground”
  • A new type of file that allows you to test out Swift code, and see the results of each line in the sidebar.
  • Results appear on the sidebar as soon as any code is typed.
  • Great way to learn about Swift, to experiment with new APIs, to prototype code or algorithms.
Objective C Vs Swift
  • Closures: Closures are self-contained blocks of functionality that can be passed around and used in your code. Closures in Swift are similar to blocks in C and Objective-C.
  • AnyObject: The equivalent of ‘id’ from Objective C, is ‘AnyObject’ in swift.
  • Introspection: The equivalent of doing if ([obj isKindOfClass:[NSString class]]) { ... }) in swift is if obj is String.