This project has moved and is read-only. For the latest updates, please go here.

What do I do on the "Select Assemblies" screen?

Mar 9, 2010 at 9:31 PM

 

I've made my trace files, and I am trying to create the unit tests but I am stuck on the step where it asks to select the assemblies? I don't know what to select here. I've tried selecting the console program executable but all I get is an error that says: The trace file did not contain any usable data. Please make sure that LogMessagesAtServiceLevel and LogEntireMessage are set.
They are set fine because I've created the trace files two differant ways(manual and loading the exe) and they both list the correct soap actions on the set options tab.
Now the console program I selected doesn't have any service references, just an app.config, I tried selecting a very similar project, that points to the same web services but actually has service references and this time I get the error:
Data or message contract attribute expected on type System.Data.DataSet.

I've made my trace files, and I am trying to create the unit tests but I am stuck on the step where it asks to select the assemblies? I don't know what to select here. I've tried selecting the console program executable but all I get is an error that says: The trace file did not contain any usable data. Please make sure that LogMessagesAtServiceLevel and LogEntireMessage are set.

 

They are set fine because I've created the trace files two differant ways(manual and loading the exe) and they both list the correct soap actions on the set options tab.

 

Now the console program I selected doesn't have any service references, just an app.config, I tried selecting a very similar project, that points to the same web services but actually has service references and this time I get the error:

Data or message contract attribute expected on type System.Data.DataSet.

 

Coordinator
Mar 9, 2010 at 10:18 PM

The assemblies it needs are the ones that contain the types for the data contracts and the service contracts. Please try specifying these and hopefully this will resolve the problem.

Regards

Rob

Mar 10, 2010 at 1:41 PM
Edited Mar 10, 2010 at 4:30 PM

I don't understand what that means?? I have a console project which contains a app.config with the endpoint information(which I load to generate the trace). I used that exe to call a number WCF services from another project which contains the actual references to the WCF services. 

I tried including the ConsoleProject.exe as the assembly and I got the error:
The trace file did not contain any usable data. Please make sure that LogMessagesAtServiceLevel and LogEntireMessage are set.

When I tried to include the .dll that contains the actual service references(I'm guessing this is the one that contains the types for the data contracts and the service contracts??)  I got the error:
 Data or message contract attribute expected on type System.Data.DataSet

So what file is it that should be included here?

Mar 10, 2010 at 4:37 PM
Edited Mar 10, 2010 at 4:39 PM

Well it seems like this error is being caused by one of the WCF calls only. 

By including the dll, and narrowing it down by creating a test for each WCF call individually I get the "Data or message contract attribute expected on type System.Data.DataSet" error only when a particular one of my WCF calls is checked.

What could be causing this? Could it have something to do with the first parameter of this call being a reference dataset?

This is unfortunately the most important one that I need to test!

Coordinator
Mar 10, 2010 at 9:05 PM

Unfortunately I need to draw your attention to the fact that in the Usage Notes document it says that DataSets are not supported. This is chiefly because I never tried them but also because I had a suspicion that they would not work, and it looks like you have proved me right. Sorry.

Could you post the problematic contract? I am not promising to fix it, but I will try to think of some workaround, if I can (really busy at the moment and I have limited time).

Dec 14, 2010 at 12:38 PM

Hi

I have downloaded the tool and trying to work with this. I have created one wcf service. Then i create another windows application to access the service. Then i add new test project and

added new test(wcf test) under the test project.

then i added the exe file of my client application(window form in this case) to it. and run it.

Then it ask me for the assembly which contains the proxy This is where i am not clear.Should i use my client application assembly which contains the proxy or shall i use the wcf service dll .If i am adding the assembly of my client application then it is not showing the ChannelFactory object creation in the .custom.cs file .

In my case i added the assembly of my client app.

please guide me what to do after this.

Another question i wonder is without developing the client app. can we test the wcf service directly using tracing.Because in case of tracing also it is asking for the executable file or pre existing trace file.

Please guide me .

 

Coordinator
Dec 15, 2010 at 9:26 AM

Any assembly that provides the contract types would do, but if you have the client-side proxy assemblies then that would be better as it would add the assembly to the test project and use the proxy to call the service.

I am not sure I understand what you are looking for in your last question. The tool requires a message log to be able to generate a test because the tool is scenario based and reproduces the scenario you ran. It can use a message log taken from the service side or the client side, but it will still need the contract classes at the very least so that it can generate the code.

Regards

Rob

Dec 27, 2010 at 12:29 PM
robjarratt wrote:

Any assembly that provides the contract types would do, but if you have the client-side proxy assemblies then that would be better as it would add the assembly to the test project and use the proxy to call the service.

I am not sure I understand what you are looking for in your last question. The tool requires a message log to be able to generate a test because the tool is scenario based and reproduces the scenario you ran. It can use a message log taken from the service side or the client side, but it will still need the contract classes at the very least so that it can generate the code.

Regards

Rob

Hi robjarratt,

Thank u so much for ur reply. Now the test tool seems  working good.I have one problem. Actually my requirement is that i want to know at which point the server is not going to respond( for say my thresold value is 5 secs).For this i have created one wcf load test. There i have given my windows form applications exe and created the trace file.Then  i added both the exe file(windows form client application) and wcf dll file in the add assembly section .

I have also added the app.config file from my windows forms application to the test project.Then i tested the wcf unit test.

It is working fine.It is also inserting the record in the database.I am really happy with that.

Then for my LoadTest i added one new LoadTest template and added the

Normal Distribution,

Think time between iterations=0(As i want to test once with say 20 concurrent users)

LoadPattern= constantLoad(20users)

Test mix=Based on the no. of virtual users.

Counter sets=i have not added any thing.

Length of the loadTest=Test Iterations=1.

and then i run it.

sampling rate=5sec(default)

I have also changed Run Unit Test In application Domain to True.

I then run it.

But to my surprise only one record is being posted in the database. Why it so???I have given 20 concurrent users so 20 records should post.

So i am getting how to test it. My requirement is

If 5 concurrent users are trying to access the same method then what is the response time.

If 10 concurrent users are trying to access the same method then what is the response time.

like wise............

By end of this process i want to know when the response time is going to cross 5 seconds.

But if i am taking the iterations as say 20 then 20 records are posted but what i think is not a right way because that way we are carrying out 20 different test.

SO please guide me on this topic.

Again i also tried for step load where i again choose step load with starting 5 users and increasing 5 users at a duration of 5 secs. and maximum users to be40 and mentioned the iterations to 1 but results came the same ie. one record is posted in the database.

if i am increasing the no. of iterations then that many no. of records are posted.

Should i add "Add computers " in the counter sets option of the test model.

I am really confused about how to set it.

I have gone through some topics but seems not working properly.

 

Coordinator
Jan 10, 2011 at 1:59 PM

Sorry for the delay in replying, I have been on holiday.

Generally when I create a load test I use a duration rather than a set a number of iterations. The iteration setting is an absolute number of iterations across all the virtual users, this is covered in the Visual Studio Performance Testing Quick Reference Guide: http://vsptqrg.codeplex.com/ which I thoroughly recommend you read.

Regards

Rob