Posts

Showing posts with the label Other OpenSource Tools

My Technical Talk @ Tconf.io - Testing insights: in the fast paced technology world of apps

Image
Or you can view on youtube @ TConf.io 2016 Aditya Kalra Testing insights: in the fast paced technology world of apps https://tconf.io http://mst.qa SDETs are the new technical testers, reshaping industries and changing how testing can be achieved. Success in this space depends on how well and how fast you respond. Testing Insights will give you answers to what you will be looking for and where you can find in the ever changing world of app test automation.

Continuous Deployment via GitLab, Jenkins, Docker and Slack

Now that's what you would want to be your tech stack! This is a good post to read and implement: Continuous Deployment via GitLab, Jenkins, Docker and Slack

Exploring Gwen Continued

Image
Continuing from my previous post   and after attending the meetup last evening I decided to put in a few hours to see what the tool had to offer. Opensource is wonderful and when it's in the test automation space and from the city you live in it gets even better! The tool is quite intriguing. Let's explore: Github page:  https://github.com/gwen-interpreter/gwen-web See also: Wiki FAQ Blog Install by downloading the zip or using maven:  https://github.com/gwen-interpreter/gwen-web/wiki/Installation Add the gwen.properties file in the users home directory This makes it a lot more easier to use. Here are a list of supported properties:  http://htmlpreview.github.io/?https://github.com/gwen-interpreter/gwen-web/blob/master/docs/conf/gwen-web-settings.html Choose the browser from the properties file Use the -r option to create reports Moore options here  https://github.com/gwen-interpreter/gwen-web/wiki/Gwen-Web-User-Guide Use th...

Exploring Gwen

Image
Gwen Stefani! Not really :) Gwen: The tool that claims to reduce the development effort when testing using selenium in a BDD(Gherkin) fashion. Attending a meetup by the developer(Branko Juric) himself here Quoting the details: " Automating tests with Selenium WebDriver is a very developer centric activity. But what if you could express the expected behavior of a feature in a standard business language instead and have an interpreter translate and evaluate it for you? This session will introduce and demonstrate an open source automation tool called Gwen that allows you to compose executable tests in a way that frees you from the development concerns typically associated with automation. It will also show you how Gwen can help BDD practices and Agile teams rapidly accelerate their UI testing. As a user of this tool, you no longer need to write any code that interacts with Selenium, develop any page objects, or build any test frameworks at all. " I thought let me...

Open Source Test Reporting Frameworks

Image
Inspired from the previous post on Test Automation Frameworks , Reporting frameworks play an important part in these frameworks. So here are some of the best open source reporting frameworks out there: Extent Reports Serenity  (Formally Thucydides) RedwoodHQ Allure There are other frameworks like TestNG/ReportNG but we are looking at more robust reporting frameworks with graphical outputs that fit into the CI/CD world. Happy Reporting!

Organize step definitions - Cucumber best practices

Image
Problem:  How do we  organize step definitions in the BDD framework as they increase? If you are using a BDD tool like Specflow/Cucumber/Jbehave  you have to define your step definitions for the feature files. Let's look at different ways to do that: Journey to Ideal way of organizing step definitions:  Keeping all step definitions in a single class file. This approach quickly becomes impractical with more features Having separate classes. Now you have a new problem - wiring the instances of those classes together. One Class per Feature file - This is good  and also the most common approach except that how would you handle reusable step definitions ReUsableSteps file - Once you recognize that a step is reused, move it to a class ReUsableSteps or something. This way, if a step does not exist in its class then it should be in ReUsableSteps. Step Definition file for each domain concept - This solves the problem of tightly coupled step definitions an...

SoapUI documentation for web services /API testing

Image
General API testing guide is useful for background reading:  http://www.soapui.org/testing-dojo/welcome-to-the-dojo/overview.html SmartBear also has a pdf  http://www2.smartbear.com/rs/smartbear/images/SmartBear-SoapUI-101-eBook.pdf   A useful resource for learning against a dummy REST API to try your SOAPUI testcases on, either to play with on their server or install it yourself and mimic your api.    http://jsonplaceholder.typicode.com/ Source: http://www.softwaretestingclub.com/forum/

Setup github within a company's firewall

Image
If you have installed gitbash or windows git setup and are getting the 443 or 407 errors everytime you clone you are on the right post: Steps to solve the issue: You will need to update the git config with proxy settings To do this find your proxy and port using this post here :  http://superuser.com/questions/346372/how-do-i-know-what-proxy-server-im-using Alternatively you can also look at the proxy settings/LAN settings to find this http://wpad.[domain]/wpad.dat  Paste http://wpad.[domain]/wpad.dat in the browser and you will have a text file in which you can find the proxy:port for all domains used by your company In your gitbash run this command : git config --global http.proxy http[s]://userName:password@proxyaddress:port git config --global http.sslverify false If you get this error - could not resolve proxy some@proxyaddress:port. It's your password having an @ symbol in it. Encode @ in your password to %40 because git splits the proxy se...

Visualise Continuous Integration / Delivery in pictures

Image
Source:  https://markosrendell.wordpress.com/2014/03/03/practical-benefits-of-continuous-delivery/ Source:  http://stackify.com/continuous-delivery-for-winners-with-a-feedback-loop/ Source:  https://guidelines.axonivy.com/attachments/download/776/overview.png Source:  http://blog.octo.com/en/continuous-delivery-how-do-we-deliver-in-3-clicks-to-7000-machines/

Web Accessibility Checker Addons

Image
I was looking at web accessibility tools and a Google search gave me some really interesting blogs posts like: http://blog.thewholebraingroup.com/11-free-website-accessibility-evaluation-tools http://www.htmlgoodies.com/beyond/webmaster/toolbox/top-five-free-web-page-accessibility-validators.html http://usabilitygeek.com/10-free-web-based-web-site-accessibility-evaluation-tools/ But the tools that impressed me the most were: 1. WAVE http://wave.webaim.org/ 2. Google Analytics Debugging Tools https://developers.google.com/analytics/ The best thing is both these tools work as add-ons therefore work as part of the browser (allowing us to access internal websites) My favorite has been GA debug and here is why: They have the extension/add-on for both Chrome (official) and Firefox (unofficial) Google developer console will be able to log (record) every hit (pageviews, screenview, event, transactions etc.) that you send to Google Analytics server. You will also be...

Jbehave or Cucmber?

Image
These two tools have always  been in a race and  also have an equal fan following. When people ask me which tool would you choose, the answer is "it depends on a lot of other factors and not just technology"! For the testing geeks who would want to read the exact JVM comparisons between JBehave and Cucmber this is the best possible source out there: http://mkolisnyk.blogspot.com.au/2013/03/jbehave-vs-cucumber-jvm-comparison.html?_sm_au_=iHV4sjrwrSTjZnJt Happy BDD testing!

Test Automation Framework Structure

Image
Here is a generic structure of a test automation tool like Selenium/Protractor/Capybara

Learn Protractor / Quick Protractor demo

Image
If you are well versed with selenium then before going through the demo have a look at these slides: http://ramonvictor.github.io/protractor/slides/#/ Now straight to the demo: Prerequisites: Download and install Nodej Go to the  NodeJS home page Click install to download the .msi installer package Run it and follow the instrucitons, you now have NPM (node package manager) and Node.js installed Open the Node.js command prompt and type in the following command to install protractor globally. npm install –g protractor If you get the error enoent read this: http://go-gaga-over-testing.blogspot.com.au/2014/09/node-grunt-error-enoent-stat-roaming-npm.html?_sm_au_=iHV1HtWvt61rRqWs You are now ready for a Proof of Concept: Demo test application and protractor tests. Setup      git clone https://github.com/juliemr/protractor-demo.git  cd protractor-demo  npm install To run Get a selenium server running at localhost:4444.  j...

AngularJS vs PolymerJS Testing

Image
What is Angular? Angular is a complete framework for building web apps. It has high-level APIs for things like services, routing, server communication. Here are some features that Angular offers: Directives  Dependency injection Testing support Routing Services Server communication What is Polymer? Polymer is a library for creating Web Components, which are a set of W3C standards and upcoming browser APIs for defining your own custom HTML elements. Here are some features that Polymer offers: Declare custom elements Widgets Polyfills for new web platform features Encapsulation for the DOM Built on emerging web standards Even though Angular and Polymer aim to do different things, there is currently some overlap. Web components and Angular’s element directives are very similar, and if there’s a comparison to be made it should be between Polymer’s Custom Elements and Angular’s directives. Summary - Angular, a MVC framework, and Polymer, pol...

Cheatsheet Git

Image
Here is an awesome cheatsheet for the git repo: P.S: Download the file for clarity

Node Grunt error enoent stat roaming npm

Image
If you are working on protractor or any similar application, the prerequisite is to install node and grunt. Installing node is a child's play but if you are trying to install grunt npm install -g grunt-cli It bombs and says   Error: ENOENT, stat 'C:\Users\Ady\AppData\Roaming\npm' Solution:  Manually creating a folder named 'npm' in the path that it specifies , in this case  C:\Users\Ady\AppData\Roaming\npm Reason: a   bug in latest NodeJS for Windows installable Tip: Run the command prompt as administrator.

Modify the IP headers on the iPhone / Bypass or change the ip on any device

Image
Problem: If we need to test an application which is outside the network or with a different IP address how do we do that? we need to be able to use a proxy server that bypasses or replaces some properties that can be then used to modify the way the application is accessed. Solution: Here is an example of how to do that on an iPhone (You can do this for any device) : Go to settings in iPhone and modify the manual IP address. Give it the same IP address as that of the local machine where the proxy server would run and select a valid port : say 8080 To set the IP headers or proxy download the Burp Free edition from here:  http://portswigger.net/burp/download.HTML Go to the Intercept tab and make sure it is off. Go to Options tab and edit the Proxy listeners to local ip of the machine: Scroll down to Match and Replace Pick a Request header not in use and modify that: In our case “Client-Version” to Now check the  HTTP history tab to confirm that the header is re...

Appium - Mobile test automation on a real device

Image
If you are looking to perform test automation on a real device (iPhone in my case) and you have had problems with the documentation on the official Appium website , the following post will help you for sure: Prerequisites:  Apple account with valid apple ID  Download and Install Eclipse on your Mac – A link that might help you with the installation process http://www.cs.dartmouth.edu/~cs5/install/eclipse-osx/ Download and Install Xcode Download Selenium Jars for java from the Selenium website Download the java client libraries from http://appium.io/downloads.html Download and install appiumD download the latest version from Appium.io. Mount the disk image.   Drag Appium.app to your Applications folder Download and Install brew (The missing package manager for OS X) It's on the bottom of the Homebrew homepage. http://brew.sh/  ( Yeah, it would be helpful if it was listed at the top, instead.) From a Terminal prompt:    ruby -e "$(curl -...