Sep 26, 2013

How to POST (upload) a file in a Visual Studio web test

So, I've came up with a task of performing a basic load test of a web service. For that purpose I've chosen the WebTest of Visual Studio 2010 Ultimate Test Project. For the most part as long as only GET requests were performed everything was pretty straightforward.

But there was one POST request that requred a file upload. A little googling led to this blog entry which describes the situation in detail. The only problem was that recording of the file upload didn't work. It didn't record anything at all, to be more correct. I guess that's because I'm in the end of 2013 and using Windows 8 and IE 10, and this breaks it somehow (you know, Windows 8 breaks a lot of things).

So basically situation is pretty dumb: you can't add "Form Post Parameters" to your POST request with a right click menu. Why (it's a rhetorical for Microsoft, I know)? And the only semi-official solution doesn't work, and it's pretty dumb solution, I might add.

The solution is quite simple however. A .webtest file is a XML, which utilises a http://microsoft.com/schemas/VisualStudio/TeamTest/2010 schema, which is located at %VsInstallDir%\Xml\Schemas\vstst.xsd. Using that schema it wasn't hard to find required tags. To create "Form Post Parameters" create a new POST request ("Add Web-Service Request"), save, and reopen .webtest as XML file. In the tag <Request> insert child elements:

<FormPostHttpBody>
<FormPostParameter Name="dummy" Value="test1" RecordedValue="" CorrelationBinding="" UrlEncode="True" />
</FormPostHttpBody>


save and close. Now you can reopen webtest with it's standard editor, and voila, you have the parameters, you can now right click on it and two new options apper in menu, inluding "Add File Upload Parameter" which is that we need. Everything else is already described in blog entry mentioned above.

Sep 11, 2013

Visual Studio 'Run' button is disabled, or problems with build

Sometime very strange things happens with Visual Studio. The one have happened to me maybe three times for all time, and each time I already forgot that I need to do to fix it! So basically your simptoms can be any of the like:

1) Your Run (F5) button is disabled;
2) Your program is not recompiled and hitting Run causes running old version of the 'exe' that lies in the Debug folder;
3) Then hitting F5 you receive error messages like "Visual Studio cannot start debugging because the debug target 'C:\your\path\bin\Debug\Project.exe' is missing. Please build the project and retry, or set the OutputPath and AssemblyName properties appropriately to point at the correct location for the target assembly.'

That usually that happens absolutely sporadically with you doing nothnig with the project or solution preferences, which confuses a lot. Now, in 99% of the cases the solution is to go to the Build->Configuration Manager... and check that Build checkbox is checked for required projects, see picture:



What makes them suddenly unchecked is still a mistery to me.

Microsoft CRM 2011, import CSV file with entity references (lookups)

While most of the time you probably could use a LookupMaps to set up an entity references in you import maps, you may come to situation there you want put actual ID's (references) in your CSV file. So, the tricky part here is the format. To create EntityReference you need entity type name and it's GUID. How would you put that into CSV string? The answer is like this:

"entity_type_name,{SOMEGUID-3FBA-47E5-ADD0-F6078ACDABB8}"

Note that surrounding quotes are required, because of the comma.