Sahi Pro is a suite of mature, business-ready tools for the automated testing of Web, Web services, Mobile, Windows Desktop, SAP GUI and Java applications. For testing teams who need rapid and reliable automation, Sahi Pro would be the best choice among automation tools.
For those who need to make functional web tests for web pages they own, Sahi Pro is the best choice. I integrated Sahi Pro with NetEye 4 using an external NetEye 4 satellite or Windows Sahi Pro Server, although if you want you can also use it directly from your NetEye 4 server or server cluster.
I had the opportunity to install Sahi Pro at a customer site to use for their functional web tests. They run around 500 web tests every 5 Minutes, and currently use 3 Sahi Pro instances to run them all.
First of all, download the latest Sahi Pro package from the download pages at sahipro.com. Install the package using java -jar <package> (following the install wizard) into the /neteye/local/sahipro folder. Afterwards you can use the files published in our NetEye 4 Public Git repo at the link:
https://github.com/zampat/neteye4/tree/master/monitoring/sahipro
Using the plugin script check_sahipro you can now launch web tests you create using Sahi Pro from your NetEye 4 monitoring module. For this you’ll also find an Icinga 2 Director basket file you can import into your Icinga 2 Web Director instance and use directly to create your own Sahi Pro Icinga 2 monitoring services.
As I said above if you want to execute more than a certain number of testcases in a small period of time, you’ll need more Sahi Pro instances to do so. But how can you execute all these testcases on more than one server in an autonomous way? Starting with NetEye 4.13, the NGinx Server is part of the NetEye 4 Core Packages. With NGinx it is easy to define your own load balanced server bucket to stream Sahi Pro TCP requests to more than one Sahi Pro instance.
You can use a config file similar to this one:
stream {
upstream sahipro_rest {
least_conn
;
server server1:9999;
server server2:9999;
}
server {
listen sahipro.neteyelocal:9998;
proxy_pass sahipro_rest;
}
}
After this you can send your requests to NGinx instead of directly to the Sahi Pro server using the host alias sahipro.neteyelocal -> nginx.neteyelocal, and instead of the default port 9999 , usethe one configured in your NGinx stream, such as port 9998 in the example configuration above.
One more thing I did is to create a dedicated Icinga 2 instance on our NetEye 4 Cluster to schedule the Sahi Pro testcases. As we have so many (>500) we had to be sure that too many don’t run at the same time, and so I decided to use, as already said, a dedicated Icinga 2 instance where I set the MaxConcurrentChecks constant to 120, so that Icinga 2 won’t run more than 120 checks at the same time.