Basic overview of software design patterns
Basic overview of design patterns.
Distributed system observability: extract and visualize metrics from OpenTelemetry spans
How to extract metrics from spans by OpenTelementry collector, store them in Prometheus and properly visualize them in Grafana.
Distributed system observability: Instrument Cypress tests with OpenTelemetry
Instrument Cypress tests with OpenTelemetry and be able to custom trace the tests.
Distributed system observability: Instrument Selenium tests with OpenTelemetry
Instrument Selenium tests with OpenTelemetry and be able to custom trace the tests themselves.
Distributed system observability: Instrument React application with OpenTelemetry
Create a React web application using the Material UI design system and instrument the application with OpenTelemetry.
Distributed system observability: Instrument Spring Boot application with OpenTelemetry
Instrumenting a Spring Boot Java application with OpenTelemetry.
Distributed system observability: complete end-to-end example with OpenTracing, Jaeger, Prometheus, Grafana, Spring Boot, React and Selenium
Code examples and explanations on an end-to-end example showcasing a distributed system observability from the Selenium tests through React front end, all the way to the database calls of a Spring Boot application. Examples are implemented with the OpenTracing toolset and traces are saved in Jaeger. This example also shows a complete observability setup including tools like Grafana, Prometheus, Loki, and Promtail.
How to gather code coverage with Istanbul and Selenium and pitfalls to avoid
Istanbul does not seem to be recoding code coverage correctly, it turned out that the tests do navigation by changing the URL, which resets the code coverage.
How to use AWS Transcribe in real-time with React and .NET Core
Practical code example how to use AWS Transcribe from an application with React frontend and .NET Core backend.
AWS examples in C# - structured logging in .NET Core and AWS Lambda
Code examples of how to do structured logging in .NET Core and C# AWS Lambda.
AWS examples in C# - AWS CLI commands
Important AWS CLI commands used in AWS examples in C#.
AWS examples in C# - introduction to Serverless framework
Introduction to Serverless framework and .NET code example of a lambda function with API Gateway.
AWS examples in C# - create basic Lambda function
Code examples on how to create AWS Lambda function in .NET Core.
AWS examples in C# - working with Lambda functions
Iintroduction to AWS Lambda functions.
AWS examples in C# - create a service working with DynamoDB
Introduction to NoSQL, introduction to DynamoDB and what are its basic features and capabilities.
AWS examples in C# - basic DynamoDB operations
Code examples with DynamoDB write and read operations.
AWS examples in C# - create a service working with SQS
To give a basic overview of AWS SQS, how to write a message to it and how to make a consumer that constantly polls the queue for new messages.
AWS examples in C# - basic SQS queue operations
Code examples of how to perform basic SQS queue operations like reading, writing, deleting, creating a queue, etc.
AWS examples in C# - run the solution
Explanation of how to install and use the solution in AWS examples in C# blog post series.
AWS examples in C# - working with SQS, DynamoDB, Lambda, ECS
Overview of the AWS examples in C# series.
Git clone with predefined user email and user name
Small bash script to clone a Git repository and set user.email and user.name.
Serialize and deserialize enum values to custom string in C# with Json.NET
How to serialize and deserialize C# enum values to customs strings.
Dockerize React application with a Docker multi-staged build
How to build React application inside a Docker container, with a multi-staged build and then run it with NGINX or Caddy.
Create .NET Core health checks with custom response payload
How to extend custom .NET Core health checks so the response JSON provides more information.
Optimize the size of Docker images
How to optimize the size of the Docker images, by using intermediate build image and final runtime image.
Create project for .NET Core custom template
How to create a custom .NET Core template, install it and create projects from it.
Restore deleted Git stash
How to restore deleted Git stash.
Ansible playbook example and how to provision it in Vagrant
Brief introduction to Ansible with and playbook example. Example of provisioning of the Ansible Playbook into Vagrant.
Testing with Cypress - Code coverage with Istanbul
This article describes how to extract and process Istanbul code coverage, and generate HTML reports.
Testing with Cypress - Basic API overview
Basic overview of the Cypress API with code samples for some of the interesting features.
Testing with Cypress - Custom logging of errors and JUnit results
Description of the custom error logger and also custom JUnit XML file creator.
Testing with Cypress - Build a React application with Node.js backend
Short introduction to the application under test that is created for and used in all Cypress examples. It is React frontend created with Create React App package. Backend is a Node.js application running on Express.
Testing with Cypress - lessons learned in a complete framework
In the current post I will share some lessons I've learned using Cypress for quite a long time. Along this journey, I created a framework which solves some of the pain points that Cypress has.
Code coverage of Ruby on Rails application with simplecov
How to measure code coverage of Ruby on Rails application with simplecov.
Performance testing in the browser
Approaches for performance testing in the browser using Puppeteer, Lighthouse, and PerformanceTiming API.
What is The Test Mushroom and how to improve your testing
In contrast to Test Pyramid, Test Mushroom shows a test portfolio which is restricted to costly and slow UI tests only. In the current post, I will describe approaches to act on your Test Mushroom hence improve your testing.
Cypress vs. Selenium, is this the end of an era?
Blog post about a Cypress talk I did recently on a local conference. The presentation compares Cypress with well knows Selenium.
.NET Core code coverage on Linux with MiniCover
How to run code coverage of your unit tests as part of your build on Linux build agents.
Build a REST API with Express on Node.js and run it on Docker
Code examples how to create RESTful API with Node.js using Express web framework and then run it on Docker.
Code coverage of .NET Core unit tests with OpenCover
Examples how to measure code coverage of .NET Core unit tests with OpenCover.
Useful .NET Core SDK CLI commands
Some useful .NET Core SDK CLI commands.
.NET Core integration testing and mock dependencies
How to do integration testing on .NET Core application and stub or mock some inconvenient dependencies.
Build a REST API with .NET Core 2 and run it on Docker Linux container
Code examples how to create RESTful API with .NET Core 2.0 and then run it on Docker Linux container.
How to run Linux on Windows 10
Details how to install Ubuntu Linux on Windows 10 and some reasons why to do it.
Best practices in software delivery process
Short overview of a software delivery process which I consider very good and worth the "best practice" label that is being practiced in a very successful software company.
Partial JSON deserialize by JsonPath with Json.NET
Code examples how to deserialize only part of a big JSON file by JsonPath when using Newtonsoft Json.NET.
Soft assertions for C# unit testing frameworks (MSTest, NUnit, xUnit.net)
Code example of very easy and useful custom implementation of soft assertions in C# unit testing frameworks such as MSTest, NUnit or xUnit.net.
Convert NUnit 3 to NUnit 2 results XML file
Examples how to convert NUnit 3 result XML file into NUnit 2 result XML file.
Java 8 features - Stream API advanced examples
This post explains Java 8 Stream API with very basic code examples.
Java 8 features - Stream API basic examples
This post explains Java 8 Stream API with very basic code examples.
Java 8 features - Stream API explained
Code examples of Java 8 Stream API showing useful use cases.
Java 8 features - Lambda expressions, Interface changes, Stream API, DateTime API
Short overview of the most interesting and useful Java 8 features.
Run multiple machines in a single Vagrant file
How to run multiple machines on Vagrant described in a single Vagrantfile.
Run Docker container on Vagrant
How to run Docker container on Vagrant.
Run Dropwizard Java application on Vagrant
How to run Dropwizard or any other Java application on Vagrant.
What is Vagrant and why to use it
Brief description on Vagrant and when and why to use it.
Install Java application as a Linux service
Code snippet how to start Java application as a Linux service.
Build a Dropwizard project with Gradle
Code examples how to create Dropwizard project with Gradle.
PowerMock examples and why better not to use them
In this post, I have summarised all PowerMock examples I've given so far. More important I will try to give some justification why I think necessity to use PowerMock is considered an indicator for a bad code design.
Mock new object creation with PowerMock
How to control what objects are being instantiated when using PowerMock.
Mock private method call with PowerMock
How to mock private method with PowerMock by using spy object.
Call private method with PowerMock
How to invoke a private method with PowerMock.
Soft assertions that do not fail JUnit test
Code examples how to use assertions that do not fail the unit test immediately.
Verify static method was called with PowerMock
How to verify that static method was called during a unit test with PowerMock.
Manage Microsoft Excel files in Java with Apache POI
Code examples how to manage Microsoft Excel documents with Apache POI Java library.
Manage and automatically select needed WebDriver in Java 8 Selenium project
Example code how to efficiently manage and automatically select needed local WebDriver using Java 8 method reference used as lambda expression.
Run Dropwizard application in Docker with templated configuration using environment variables
How to run Dropwizard application inside a Docker container with configuration template file which later gets replaced by environment variables.
Data driven testing with JUnit and Gradle
How to do data-driven testing with JUnit and Gradle.
Coloured log files in Linux
How to colour your log files for better perception under Linux.
Mutation testing for Java with PITest
Introduction to mutation testing and examples with PITest tool for Java.
Mock/Stub REST API with WireMock for better unit testing
Examples how to use WireMock to stub (mock also is possible as a term) REST API in order make better unit testing.
Create simple REST API client using Jersey
Code examples how to create REST API client using Jersey.
Amazon S3 file upload with cURL and Java code
Working Java code to upload a file to Amazon S3 bucket with cURL.
Mock static methods in JUnit with PowerMock example
Examples how to mock static methods in JUnit tests with PowerMock.
Data driven testing with JUnit parameterized tests
How to do data-driven testing with JUnit parameterized tests.
Introduction to Postman with examples
This post is demonstrating different Postman features with examples.
JSON format to register service with Eureka
What JSON data is needed to register service node with Eureka server.
Unmarshal/Convert JSON data to JAXBElement object
How to marshal and unmarshal JAXBElement to JSON with Jackson.
MD5, SHA-1, SHA-256 and SHA-512 speed performance
Speed performance comparison of MD5, SHA-1, SHA-256 and SHA-512 cryptographic hash functions in Java.
Implement secure API authentication over HTTP with Dropwizard
Reference implementation on suggested in "How to implement secure REST API authentication over HTTP" post authentication mechanism.
How to implement secure REST API authentication over HTTP
How to implement secure API authentication even over HTTP.
Assert Mockito mock method arguments if no equals() method implemented
How to assert mock method is called with the specific object as an argument in case no equals() method is implemented on argument object.
Mock JUnit tests with Mockito example
Why mocking is needed in unit testing and how to do it with Mockito.
Avoid multithreading problems in Java using ThreadLocal
What are common approaches to deal with multithreading problems in Java. What is ThreadLocal and how to use it.
JUnit methods execution sequence
Details with code samples on JUnit methods execution sequence.
Retry JUnit failed tests immediately
How to retry failed JUnit tests immediately and if a retry is OK then report test as passed.
Use JUnit rules to debug failed API tests
What are JUnit rules and how to use them to improve debugging of failed API tests.
Code coverage of manual or automated tests with OpenCover for .NET applications
Examples how to do code coverage of manual or automated functional test with OpenCover tool for .NET applications
Create Cucumber JVM custom formatter
How to implement custom formatter for Cucumber JVM.
Running Cucumber tests in parallel
Details with code samples how to run Cucumber JVM tests in parallel.
Introduction to Cucumber and BDD with examples
Code examples and introduction to Cucumber, a framework that runs automated tests written in behavior driven development (BDD) style.
IntelliJ IDEA toString templates for JSON output
Templates to be applied to IntelliJ IDEA for automatic generation of toString() method that outputs the object in JSON format.
IntelliJ IDEA keyboard combinations
Some very useful keyboard combinations when working with IntelliJ IDEA.
Performance testing with Gatling - reports
Some details on Gatling results report.
Performance testing with Gatling – advanced usage
Code samples and explanation how to do advanced performance testing with Gatling, such as proper scenarios structure, checks, feeding test data, session maintenance, etc.
Performance testing with Gatling - integration with Maven
Code samples and explanation how to create performance testing project with Gatling and Maven and run it with Maven plugin.
Performance testing with Gatling - recorded simulation explanation
Explanation of automatically generated code of recorded Gatling simulations.
Performance testing with Gatling - Scala fundamentals
Tutorial that covers basic Scala functionalities that may be needed during Gatling automation.
Performance testing with Gatling - record and playback
How to record a simulation with Gatling recorder and play it back.
Performance testing with Gatling
Tutorial how to use Gatling and do successful performance testing with it.
Performance, Load, Stress and Soak testing
Performance, Load, Stress and Soak testing are different aspects of one goal - proving that application will function correctly with a large number of users.
Code coverage with JaCoCo offline instrumentation with Maven
Tutorial how to do code coverage with offline instrumentation with JaCoCo and Maven.
Automated code coverage of unit tests with JaCoCo and Maven
Tutorial how to setup code coverage with JaCoCo on unit tests to be done on each Maven build.
Code coverage of manual or automated tests with JaCoCo
Tutorial how to do code coverage on automated or even manual functional tests with JaCoCo.
JPS alternative for Dropwizard - Servlet with Apache Velocity template engine
How to create a web application with Dropwizard with Servlet and Apache Velocity template engine since JSP is not supported.
Send SOAP request over HTTPS without valid certificates
How to send SOAP request over HTTPS in Java without generating and installing certificates. NB: This MUST not be used for production code!
REST performance problems with Dropwizard and Jersey JAXB provider
Dropwizard's performance highly degrades when using REST with XML caused by Jersey's Abstract JAXB provider. Solution is to inject your own JAXB provider.
How to do proper performance testing
Describe what actions are needed in order to make successful performance testing.
Build a RESTful stub server with Dropwizard
How to make a RESTful server that can be used for stub during testing.
Get rid of Getters and Setters
Use Project Lombok to reduce the amount of code you have to write by automating Getters and Setters generation
FIX messages simulator
General thoughts how to test FIX messages with a FIX simulator.
What about code coverage
Code coverage is a measurement of what percentage of program source code is being executed by your tests. Code coverage is a nice to have, but in no case make code coverage ultimate goal!
Advanced WPF automation - memory usage
Highlight eventual memory issue when using Telerik Testing Framework and TestStack White for desktop automation.
Automation SMTP Server
Automation SMTP Server is simple SMTP server run as console application.
Complete guide to email verifications with Automation SMTP Server
How to do complete email verification with your own Automation SMTP server.
Extract and verify text from PDF with C#
How to extract text from PDF in C#.
Text verification
Verify actual text with expected one by ignoring what is not relevant during compare.
Advanced WPF automation - read dependency property
What is dependency property in .NET and how to read it from Telerik Testing Framework.
Advanced WPF automation - working with WinForms grid
Example how to work with WinForms grid with TestStack White.
Advanced WPF automation - page objects inheritance
re-use of page objects code through inheritance.
Advanced WPF desktop automation
In this series of posts I'll expand the examples and ideas started in "Automation of WPF applications" series.
Multilingual automation testing with enumerations
Solution for automated testing of multilingual sites by using string values in all supported languages for enumerations.
Efficiently use of enumerations with string values in C#
Using enumerations or specialized classes makes your automation tests easy to understand and maintain. Show with code samples how to define and read string value to enumeration elements.
NTestsRunner
NTestsRunner is a tool for running functional automated tests.
NTestsRunner for functional automated tests
NTestsRunner implementation details and features.
Running functional automation tests
.Unit testing frameworks are not very suitable for running functional tests. NTestsRunner is an alternative way of running functional automated tests.
WPF automation - running the tests
How to sell your automation to management. Guide for running the tests unattended.
WPF automation - using the elements
Use already created Page Objects and build up test framework.
WPF automation - locating and structure of WinForms elements
Guide how to locate WinForms elements with TestStack White.
WPF automation - locating and structure of WPF elements
Guide how to locate WPF elements with Telerik Testing Framework.
WPF automation - projects structure
How to structure projects in the course of WPF automation.
Automation of WPF applications
Overview how to successfully automate WPF application with Telerik Testing Framework and TestStack White.
Complete guide how to use design patterns in automation
Complete code example of how design patterns can be used in real life test automation.
Singleton and Null object patterns
Description with code samples of Singleton and Null object design patterns.
Factory design pattern
Description of code samples of Factory design pattern.
Facade design pattern
Description with code samples of Facade design pattern.
Page objects design pattern
Description of code samples of Page Objects design pattern.
Design patterns every test automation engineer should know
Description with examples of 5 design patterns that is good to know and use in our automation testing.
Selenium WebDriver cannot click UTF-8 icons
Selenium WebDriver is not able to click UTF-8 icons. The solution is to use jQuery code.
Efficient waiting for Ajax call data loading with Selenium WebDriver
This post is about implementing an efficient mechanism for Selenium WebDriver to wait for elements by execution of jQuery code.
Automating SignalR applications with Selenium WebDriver
This post is about a "No response from server for url" issue during automation of web application using SignalR with Selenium WebDriver. The issue was resolved by configuring the application to connect to the server through WebSocket protocol.