0
votes

I've recently developed custom build runners (plugins) to TeamCity and Jenkins. The plugins enable the users to start automated load tests as part of the build process.

To give you some idea here's the Jenkins plugin page with a lot of description:

https://wiki.jenkins-ci.org/display/JENKINS/Apica+Loadtest+Plugin

Here are a couple of screenshots of the TeamCity plugin:

These Continuous Integration frameworks allow a high level of customisation for plugin development: the UI, the output, client and server code etc. can all be tailored.

I've received a question whether we can develop a similar build runner for MS Team Foundation Build Service. I've completely new to TFS, I've never used it for anything. I've read through a couple of tutorials on how to install and set up TFS but there seems to be very little material available regarding custom build runners. The closest I've got are the following pages:

However, they don't provide any example on GUI extensions, validation, customisation etc.

Therefore I'd like to get the opinion of experienced TFS users before we get any more serious with the framework:

  • is it possible to develop plugins for TFS build?
  • what are the limitations? E.g. can I build a custom GUI with custom client/server actions?
  • can I include custom pages, show graphs etc?

Any advice is welcome.

Thanks for your help, Andras

1

1 Answers

1
votes

When it comes to TFS Build, you first need to know that there are two build systems: XAML Build and a new, now default, build system.

XAML Builds are based on Windows Workflow Foundation. You can create custom activities and add these to a Build Definition Template. XAML Build only run on Windows and extending them is not very easy.

The new Build system is based on Node, runs cross-platform and is very easily extendable. Microsoft has open sourced all the tasks they have for TFS Build (see GitHub for the repository).

Targeting the new build system means that you support on-premises installations of TFS 2015 and the cloud hosted version of TFS: Visual Studio Team Services (see visualstudio.com for more info).

The easiest way to get started is by creating a new VSTS account (free!), adding some code and running a build. If you have that working, you can start exploring the existing build tasks and learn what's possible. You can then easily create your own task and start experimenting.

One thing that might be of interest to you is that TFS/VSTS already support load testing. You can run a very simple load test with a couple of mouse clicks or configure more complex Web Tests and use these in TFS in combination with Application Insights. I'm not sure if that's what your customers are looking for but it's worth checking out (see Cloud-based Load Testing for more information)