Measuring Tridion UI Performance Using Selenium and JMeter

Recently, one of our clients wanted to capture the performance metrics of Tridion in scaled environments and they had some interesting questions for us:  metrics
1. How long does a Tridion item—for example, a component, page, etc.—take to load in a browser?
2. How long does it take to save and check-in a Tridion item through the browser?                                                                                                   
The client, having updated Tridion to Web 8.5 from 2013, was interested in measuring the performance of Web 8.5 under user load for auditing purposes and identifying bottlenecks, if any, in the system.  A lot of browser automation tools are available in the market, but we needed a tool that is cost-effective, open source, provides support for writing test scripts in Java and offers great support for browser automation of dynamic websites. We chose Selenium for these reasons. For the similar reasons of being cost-effective and open source—in addition to providing support for running test scripts in non-GUI mode, thereby saving a lot of resources and supporting remote execution of test scripts, JMeter was chosen as the load testing tool. In this post, I will demonstrate how Selenium and JMeter were used in gathering performance metrics in Tridion CMS.                

Continue reading

Deploying Event System Extensions in 8.5

Writing code .. that’s the easy part. The hard part can sometimes be deploying the code.

I’ve recently been working on some event system code in SDL Web 8.5 and wanted to deploy it. This is a simple matter of stopping a service or two, copying over the DLL, and then restarting the services.

Rather than re-invent the wheel I referred to my notes in Intro to the Event System, but then realized that the service model within Web 8.5 was quite a bit different.

Continue reading

Highlights from the 2018 Tridion Developer Summit in Amsterdam

In case you missed it, let me share some highlights of the Tridion Developer Summit in Amsterdam this year. This year was a year of changes, it is the first time since the history of TDS that I didn’t present, I even missed the first half of the opening day, since my flight was delayed. Let me start off with the real beginning of TDS though, the preparations and workshops.

Continue reading

2018 Tridion Developer Summit

tds-logo-1The Tridion Developer Summit (TDS) is an annual developer conference for all things related to the SDL Tridion Content Management System.   It’s a two day event full of workshops and presentations from the best in the SDL community so it’s an absolutely must attend conference if you’re working and developing with Tridion… there’s a lot of drinking involved too!

Continue reading

Have an Idea for Tridion Sites 9.1?

My fellow Product Owners for SDL Tridion Sites have an interesting challenge to somehow understand and clarify the top community product ideas to size them for prioritization against everything else that will be in the Tridion Sites 9.1 release (scheduled for after Sites 9, if the version wasn’t clear).

My colleague Rick has been leading this effort and I’m doing my part to point out all the (many) channels we have in the community and ways to solicit feedback. Ironically, it’s hard to get feedback that we can use to actually understand and size a few of these ideas, especially after I’ve noticed everyone seems to have an idea.
Continue reading

Excel — an excellent editor for Tridion component lists

TridionExcelTridionOne of our customers has a pattern where they have a list of component links in a container component. Some of these container components are hundreds of links long.

Although the contained components are ported from DEV to UAT to PROD, adding the components to the containers is done manually. This usually works well, but what happens when some links are missing? How do you sort through hundreds of component links to find if you need to add one?

In this post I show how to use Excel and Notepad++ to work with the contents of the container component.

Continue reading

Finding the startup parameters used by your Windows Service

When you install one of the Tridion micro-services as a Windows service, you can specify a number of startup parameters. These may include settings such as the database host, database login, the port to use, etc.

These settings will be remembered and used every time the Windows service starts.

But what if you want to see which settings were used, later on?
For that, you will have to look in the Windows registry. The following location is an example using the Discovery service:

HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Apache Software Foundation\Procrun 2.0\SDLWebDiscoveryService\Parameters

You’ll notice a number of sub-keys: Java, Log, Start, and Stop. The most interesting information is in the Java and Start keys.

The Java key contains the classpath to use (yes, set at the time of installation), the JVM options, and most of the parameters specified for the service (in the Options value).

Java key

Registry key containing most of the startup options

The Start key contains the working directory and the parameters directly related to the hosting of the service (e.g. port to use and whether or not it should register its capabilities with the Discovery service automatically).

Start key

Registry key containing the hosting options


If you just need to tweak one of the values, you can edit these registry keys and restart the service. If you require a large amount of changes, I recommend simply uninstalling the service and re-installing it with the new parameters.

Asynchronous Events – Fire and Forget

FireRocketIn I described the overall event system, listing many of the options available, but not describing them in detail. One of these options requires further examination: Asynchronous Events.

Asynchronous Events happen outside of the regular process of the code that is running. They may run now, or they may run later. You can think of Asynchronous Events as “Fire And Forget” rockets. Sometimes that’s exactly what you need, and sometimes that’s exactly the wrong thing. Let’s look at some scenarios for both.

Continue reading