Select to view content in your preferred language

What are your best practices for stylizing services?

4150
5
02-16-2015 12:15 PM
BrandonKeinath1
Occasional Contributor III

Does anyone have best practices regarding service symbolization, labeling, etc?  I have a number of notions I've gathered from various classes, conferences, but nothing concrete.  We would also really like to test our changes using some kind of performance testing software.  We've been looking at System Test  and Jmeter but have had almost no success.  Any thoughts on that would also be appreciated.

Thanks,


Brandon

0 Kudos
5 Replies
OwenEarley
Regular Contributor

I am assuming that you have already done this but the Service Editor - Analyse button would be the first place to start. This will highlight any major performance issues but won't give you any metrics on minor changes.

I haven't come across any tool that provides the level of detail you are after and would be interested in other responses as well.

BrandonKeinath1
Occasional Contributor III

Hi Owen,

We have been using the analyze functionality and I've learned a lot that way.  But now we're looking for ways to know when we've improved a service's performance.  If I get some good feedback outside of this post I'll try to bring it here as well.  I have a number of feelers out

Thanks,

Brandon

ChrisSmith7
Frequent Contributor

Regarding performance testing, if it's front-end JavaScript, have a look at:

https://community.compuwareapm.com/community/display/AJAX/Dynatrace+AJAX+Edition+Community+Home

It's pretty robust in identifying bottlenecks that a user would experience due to front-end processing.

For load testing the server, this can get pricey as I've come to learn. You could always do something really basic like setting-up Perfmon counters on the server and have everyone in your organization follow a targeted test path, then review the logs/graphs after testing. This would establish a baseline benchmark you could compare against successive code iterations.

Of course, it would be easy to skew results as getting 10 people to follow a test path exactly is a challenge much less 150, and it's quite an ordeal to take time away from so many individuals. You can get around this by creating your own test users with automated browsing - Selenium + Python would be a good choice.

BrandonKeinath1
Occasional Contributor III

Hi Chris,

Do you have any examples of using Selenium and Python to test arcgis services?  I've done a fair amount in Python but would be completely new to Selenium.  We've also been looking into system test as a method to have our "non-programming" publishers be able to test services they publish.

Thanks,

Brandon

0 Kudos
ChrisSmith7
Frequent Contributor

Brandon,

I have been looking into writing unit tests of late, though it is still a work in progress. Selenium isn't limited to Python - you can use multiple languages. There's actually a GitHub using Intern + Selenium for ArcGIS (this looks geared towards unit/function testing):

DavidSpriggs/intern-tutorial-esri-jsapi · GitHub

Intern is a JavaScript test stack... if you're already writing JavaScript map apps, this may be a good choice, too. I know most GIS people are familiar with Python, though. I've worked for an organization that employed Python/Selenium for automated QA - repurposing for load testing is another benefit of writing your test users:

How to perform load testing using Selenium WebDriver? - Stack Overflow

If you aren't familiar with web crawling/scraping/mining, the basic concept is that you would automate browser actions in your application, like clicking on buttons, submitting forms, navigating, etc. This would be done by writing a test user/script that would interface with your map and follow a predetermined test path.

You could write into the script logic to check whether a page loaded, the output was expected, etc., but with Selenium, you can spin-up multiple test users/scripts at the same time, so load can easily be tested on the server (maybe using Perfmon?).

Here's a tutorial on Selenium + Python:

http://engineering.aweber.com/getting-started-with-ui-automated-tests-using-selenium-python/

Unfortunately, you would need to code your test users - I am not familiar with any of the commercial products that don't require coding, though I know they are pricey.