Monitoring Blog
Release announcements, technical guides and monitoring insights from the ConSol team.
Citrus: XPath validation power
Thursday, February 18, 2010 in Insights
I recently struggled with the validation of a very generic XML data structure in some message payload. It turned out to be a good example where XPath validation can overcome the normal XML tree comparison. I’d like to share my thoughts about this issue, because others might run into similar problems too and the solution with XPath really impressed me with its powerful validation possibilities. Let me introduce the generic XML structure to you first, so you get an idea about my problem. In my test case I need to validate the following XML structure in some message payload: <StatusResponseMessage> <StatusList> <Status>SAVED</Status> <Status>ORDERED</Status> <Status>FINISHED</Status> <Status>NEW</Status> </StatusList> </StatusResponseMessage> Unfortunately the status elements are not …
Citrus sources on GitHub
Thursday, February 11, 2010 in Insights
The Citrus project sources are now available on GitHub for public checkout. You can clone/fork the Citrus project via Git and build your own version on your local machine. Visit the Citrus project site on GitHub for more details. I also added a developer quickstart that guides you through the steps in building Citrus with Maven. We hope that you can enjoy Citrus also on the development side and look forward to receive a lot of interesting ideas and suggestions for the project.
Localized citrus.properties
Wednesday, February 03, 2010 in Insights
In larger projects usually a team of testers is working on Citrus integration tests. This means that we need to localize the citrus.properties for testing on different machines, as each tester executes test cases with individual environment settings. In this post I’d like to share an easy way to localize the Citrus settings with Maven. By default Citrus is able to work with property files as the Spring’s PropertyPlaceholderConfigurer is able to post process the beans in the IoC container. In the Spring application context we define the placeholder configurer to load properties from external file resources. <context:property-placeholder location="classpath:citrus.properties" /> The citrus.properties file contains our project settings. Usually this file is added to version control and goes …
Citrus: Latest 1.1-SNAPSHOT version available
Tuesday, February 02, 2010 in Insights
We put a further Citrtus 1.1-SNAPSHOT version online (see http://www.citrusframework.org). This snapshot release contains the following changes: Bugfixing: Fixed message encoding issue regarding automatic UTF-16 XML payload conversion. For detailed bugfix changes see the changes report Read database values to variables: You can now extract column values in database result sets as test variables. In older versions this was only possible when validating the column values in advance. <sql datasource="myDataSource"> <description>Read some column value from database</description> <statement>SELECT MY_COLUMN FROM MY_TABLE WHERE ID='${rowId}'</statement> <extract column="MY_COLUMN" variable="${var}" /> </sql> Message channel support: We added Spring Integration message channel support for …
Customizing meta information
Monday, January 18, 2010 in Insights
Test cases in Citrus are usually provided with some meta information like the author’s name or the date of creation. This post shows how to extend on this to include your very specific meta data on your own. Meta-data that comes shipped with Citrus looks like <testcase name="PwdChange_OK_1_Test"> <meta-info> <author>Christoph</author> <creationdate>2010-01-18</creationdate> <status>FINAL</status> <last-updated-by>Christoph</last-updated-by> <last-updated-on>2010-01-18T15:00:00</last-updated-on> </meta-info> [...] </testcase> However there may be some additional data needed to meet your individual testing strategy. Therefore you can extend the meta-info section at the very beginning of a test case very easily. Let me use a simple example to show how it is done. First of all we define our …
jmx4perl 0.51 released
Wednesday, December 23, 2009 in Insights
Jmx4perl 0.51 has been released. Welcome to the next round in the jmx4perl journey. The new release 0.51 contains beside bug fixes the following changes: A new proxy mode allows for usage of jmx4perl without the need to deploy an agent servlet on the target platform. All you need is to deploy the j4p.war on a dedicated servlet container (preferably Tomcat or Jetty) which accesses the target platform via JSR-160 based JMX remoting. The target server needs to be prepared for JMX remoting, though. More information can be found in a previous post. Some hints for enabling JMX remoting with JBoss and Weblogic has been posted here. --target option has been added to check_jmx4perl and jmx4perl for enabling the usage of the jmx4perl proxy A Mule agent has been added for direct usage of jmx4perl …
Performance testing with Citrus
Friday, December 18, 2009 in Insights
Once you have written Citrus integration tests it would be nice to also use these test scenarios for performance testing. In a recent project we accomplished basic performance tests just using some out-of-the-box features in TestNG. In this post I would like to share a simple example with you regarding performance testing in Citrus. First of all some words about our test scenario. We are testing a request/response SOAP WebService with Citrus. We have already written a test case that calls the WebService as a client and receives the response for validation, very simple. Now we intend to execute this test case several times and multi threaded to simulate a high load scenario. Every test case in Citrus generates a TestNG Java test class for its execution. With TestNG we are able to execute …
A very first look at monitoring in Glassfish v3
Friday, December 11, 2009 in Insights
Glassfish Enterprise Server v3 has been released yesterday and it brings some exciting news related to monitoring. Here are some links to the new monitoring features of v3. Glassfish v3 has quite a bunch of extensions related to JMX and monitoring. I didn’t yet dive deep into it, but here are some links of blogs published yesterday (aggregated from @glassfish): Monitoring in GlassFih v3 - It’s Different and Cool! Easy 1-2-3 Monitoring in v3 Top Ten features of Monitoring GlassFish V3 management and monitoring MBeans — AMX GlassFish REST Interface for Management and Monitoring ‘mx’ — JMX command line especially for GlassFish V3 Navigating the GlassFish V3 MBean hierarchy using ‘mx’ command line Making your Application monitorable in GlassFish v3 Adhoc Monitoring with Scripting-Client in …
Jmx4perl Mule Agent
Thursday, December 10, 2009 in Insights
In its standalone mode, Mule provides a simple to use interface for custom agents to plug in. This blog post is about the new jmx4perl mule agent which can be used with jmx4perl and the Nagios check check_jmx4perl. Mule is one of the leading ESBs which can be used either as a web application or in standalone mode. For monitoring purposes it exposes its management interfaces via JMX, so jmx4perl can be used for a lightweight JMX remote access here as well. When used as a JEE web application the usual jmx4perl agent can be deployed in parallel as a servlet, so no special setup is required here. When Mule is operating in standalone mode things are a bit different. Mule is not a servlet container so deploying a vanilla j4p.war is not possible. Mule itself is able to export JMX interfaces via …
check_hpasm 4.1 schaut HP BladeCenter unter die Haube
Monday, December 07, 2009 in Insights
Das neueste Release von check_hpasm ermittelt jetzt nicht mehr nur den globalen Status der cpqRack-MIB eines BladeCenters, sondern liest die wichtigsten Tabellen detailliert aus. Aufgerufen mit -v liefert check_hpasm eine Übersicht der verbauten Komponenten samt deren Status. Und so sieht das dann aus: check_hpasm --192.168.29.174 -v OK - System: 'bladesystem c7000 enclosure', S/N: 'GB5826CG32', hardware working fine common enclosure ENC_A condition is ok fan 1:1:1 is present, location is 1, redundance is other fan 1:1:10 is present, location is 10, redundance is other fan 1:1:2 is present, location is 2, redundance is other fan 1:1:3 is present, location is 3, redundance is other fan 1:1:4 is present, location is 4, redundance is other fan 1:1:5 is present, location is 5, redundance is …