After building a new BizTalk environment it can be helpful to run a few simple tests to check all is good.
I have created a set of scripts that perform the following:
- runs application MSI to install assemblies and deploy into BizTalk MgmtDb
- drops a test xml file into a receive location
- waits a few seconds
- checks an output file exists where expected
The above is a very simple list of steps but it does exercise many key aspects of the BizTalk platform, including MSDTC, SSO and configuration of the BizTalk databases.
In addition to testing the BizTalk platform, it's often helpful to know that access to required addresses and ports has been made available. So, in addition to the above, the test script can also receive an array of addresses for which it tests connectivity using the test-port PowerShell function described here: technet blog post
After downloading a zip of my scripts from here, unpack and you will find the following contents:
|SmokeTest.ps1||Top level script and the only one you need run directly in order to execute the tests|
|BasicBTDFTest-1.0.0.msi||Contains simple BizTalk app + bindings|
|DeployBizTalkApp.ps1||Deploys the BizTalk application|
|Install-BizTalkApplication.ps1||Referenced by DeployBizTalkApp.ps1|
|UndeployBizTalkApp.ps1||Undeploys the app. May be run once satisfied the tests have completed successfully|
Installing The App
The app may be installed by running "DeployBizTalkApp.ps1" from an admin PowerShellWindow. The script is not signed so if it fails to run due the PowerShell policy, you can change this by running the following:
After running the script, don't forget to change the policy back to a more secure setting, details can be found here
Unblock the DeployTools.dll
The deployment scripts are based on the excellent BizTalk ALM codeplex offering. This includes a helper assembly called "DeployTools.dll". It may be that this needs to be unblocked before it can be used. In windows explorer, navigate to the DeployTools.dll, right-click and select properties. In the General tab click Unblock then click Ok.
You may now run the deploy script ".\DeployBizTalkApp.ps1"
Note: if you see the error: “Could not load file or assembly DeployTools.dll or one of its dependencies” this is most likely because the dll needs to be unblocked. Follow the instruction given above and also note you must restart any open PowerShell session before the unblocking will take effect.
This will create a new BizTalk application named BasicBTDFTest that contains a single receive location and a single send port.
The deployment also creates the following folders for the receipt and sending of a test file:
Running the Tests
The tests may be run by executing the PowerShell script SmokeTest.ps1
This script will accept the parameters listed below, although suitable defaults are used where a parameter is not provided from the command line:
|Param Name||Description||Default Value|
|rootTestFolder||Root of the test folder hierarchy||c:\testing|
|inbox||Sub folder from which test files will be collected||inbox|
|outbox||Sub folder to which files will be sent||outbox|
|testFile||name of file to be copied||test1.xml|
|testAddresses||comma delimited list of addresses and ports to test||@("www.bbc.co.uk:80", "www.gmail.com:443")|
There are two distinct types of test that are run by the script: file drop and port test
The contents of the outbox folder are first deleted.
If a testFile parameter is received then this will be copied to the inbox folder. If not, then a simple Test1.xml file will be created and copied to the inbox folder.
The script will then wait 5 seconds before counting the number of files in the outbox
The script will loop through each of the addresses received in the testAddresses parameter and check that connectivity is possible.
The results of the tests are written to a simple text file called SmokeTestResults which will be copied to the same folder as the SmokeTest.ps1 script. An example results file is shown below: