In my previous blogs, we discussed in detail about InfoPath's dynamic parameters and how to extract and parameterize them. In this blog we shall talk about some of the challenges we face while we migrate our Performance scripts to different environment.

Moving the VSTS scripts from server to another server is not a seamless experience. Let me share some of our key learning's in this front. Our scripts stopped working when migrated to a different server base. When we tried analyzing the requests we found some parameters apart from web server names needed to be parameterized.

Let’s look into the requests for a better understanding,

”Web servers’ parameterization” feature in VSTS parameterizes only the server name in the script and not the contents in the string body, event log or in Query string

String body

Server on which Scripts were recorded:

8;0;{{MyValue1}};{{myvalue2}};0;;urn%3Aschemas-microsoft-com%3Aoffice%3Ainfopath%3ATaskForm%3A-myXSD-2008-01-04T05-38-11;https%3A%2F%2Ftestserver1.com%2F_layouts%2FFormServer.aspx%3FXsnLocation%3Durn%3Aschemas-microsoft-com%3Aoffice%3Ainfopath%3ATaskForm%3A-myXSD-2008-01-04T05-38-11;;https%3A%2F%2Ftestserver1.com%2FDynamics%2FAxapta%2F{{SiteName}};;1;0;0;162;1;633421497999791000;;{{myvalue3}} 0;V1_I1_D15;; Review%20completed%20and%20reviewed%20files%20attached%3Ay 0;V1_I1_S:17_I1_C1;;true 0;V1_I1_T23;0;comments 1;CTRL14_5;V1_I1;

New Server:

8;0;{{MyValue1}};{{myvalue2}};0;;urn%3Aschemas-microsoft-com%3Aoffice%3Ainfopath%3ATaskFormV1-1%3A-myXSD-2007-07-02T05-38-11;https%3A%2F%2Ftestserver2.com%2F_layouts%2FFormServer.aspx%3FXsnLocation%3Durn%3Aschemas-microsoft-com%3Aoffice%3Ainfopath%3ATaskFormV1-1%3A-myXSD-2007-07-02T05-38-11;;https%3A%2F%2Ftestserver2.com%2FDynamics%2FAxapta%2F{{SiteName}};;1;0;0;162;1;633579187166585000;;{{myvalue3}}

Differences in parameters are highlighted, so it’s always better if we can parameterize as much as possible in our request. This could simply be done by using our extraction rules as mentioned earlier, for server names (https%3A%2F%2Ftestserver1.com) or any other parameters found in string body.

For instance:

8;0;02e85855-4790-4ce7-afe0-382465ac5740;b395b396-33ab-43ce-8325-3ec299f462d3:ver:1.0.0.3994;0;%2FDynamics%2FAxapta%2F{{sitename}}%2FInstanceu20Library%2FInstanceForm-{{instancename}}.xml;;https%3A%2F%2Ftestserver1.com%2FFormServerTemplates%2FArtDefn.xsn;;https%3A%2F%2Ftestserver1.com%2FDynamics%2FAxapta%2F{{sitename}};https%3A%2F%2Ftestserver1.com%2FDynamics%2FAxapta%2F{{sitename}}%2FInstanceu20Library%2FForms%2FAllItems.aspx;0;1;0;162;1;633552605014752000;;AxSBhHlXoLz18RGKBqtie6KBv62gO3n2eJJUR9dJITdmPOlFEcQlMvCBnPblYs1aMnjdLuJwVQZbJ9mU/XMleg==|633552605014595593 1;btnpostIntiationUpdate;V1_I1_S1_I1;

Could be parameterized in the below fashion to avoid any rework on the script

8;0;{{Myvalue1}};{{Myvalue2}};0;%2FDynamics%2FAxapta%2F{{sitename}}%2FInstanceu20Library%2FInstanceForm-{{instancename}}.xml;;{{source}}%2FFormServerTemplates%2F{{contenttype}}.xsn;;{{source}}%2FDynamics%2FAxapta%2F{{sitename}};{{source}}%2FDynamics%2FAxapta%2F{{sitename}}%2FInstanceu20Library%2FForms%2FAllItems.aspx;0;1;0;162;1;633552605014752000;;{{Myvalue3}} 1;btnpostIntiationUpdate;V1_I1_S1_I1;

We can find that server name is also parameterized as {{source}} in String body.Now we can be sure that even if the server name is changed, the parameters in the String body, event log and query string are also changed accordingly as they are derived from the earlier responses.