Add Mouse Click to Existing Coded UI Tests - coded-ui-tests

I am new to coded ui testing. We are using VS/TFS 2017. I inherited over 100 tests. A requirement of the tests is that they always start at the "Dashboard". The person who recorded the tests ended each test with a "Click 'Dashboard' link". I have since automated the tests so that they run after our nightly build. The problem is that if a test fails all subsequent tests fail because the screen is not back on the dashboard because the first test to fail did not finish and "Click 'Dashboard' link". So I want to add a "Click 'Dashboard' link" to the beginning of each test. One would think this would be a simple matter... but I am not seeing it.
If I open the test solution in VS and open UiMap.uitest in the Solution Explorer and edit the desire test I can see the "Click 'Dashboard' link" action under 'UI Actions'. What I would like to do is be able to basically 'Copy' the "Click 'Dashboard' link" and 'Paste' it at the beginning of the test. How does one do that without re-recording all 100+ tests?
Thanks

Related

Azure Devops Custom Extension for Test Plans and its dialogue

I had write an dummy extension that i want to work in test plan screen and its test steps screen. when a user check the Test steps i want to get the values of those checked test steps. If all steps are not being selected so it should return 'Pause' on close, not pass or fail.
I had write an extension of dialogue box (for warning that you had not selected this option)that i want to show on the click of Save & Close button if user had not selected a default value or hadn't clicked all steps. but i m unable to attach my extension to that dialogue screen.

Successive errors when trying to 'Run' the recorded script [duplicate]

This question already has an answer here:
Visual Studio Coded UI test won't run - startup object empty
(1 answer)
Closed 5 years ago.
I created a brand new Coded UI Project and started to record the project. Once, I was done with recording, I click Generate code to create the code for the script.
When I click the 'Start' button after clicking 'Build' > 'Build Solution', I run into the following error: 'A Project with and Output Type of Class Library cannot be started directly. In order to debug this project, add an executable project to this solution which references the library project. Set the executable project as the startup project'
So, I went ahead right clicked the project and clicked 'Set as Startup Project' and saved and tried to run again. However, still the issue was not resolved.
I also right click the project and went to its Properties > Application > change output type to Windows Application'. Then, I get the error message 'Program does not contain a static Main method suitable for an entry point'
When I google the solution for this, the solution is to change it back to output type Class Library'
So, basically it keeps going back and forth and one solution actually leads to error for the other.
Is there a way I can Play the recorded piece by resolving these errors?
The issue is that the coded UI tests are a class library, and per the error they cannot be started.
To sole this:
You can write a program to launch them through something such as a terminal - this occasionally seen done with selenium based tests
You can right click on the test method and click "Debug Tests", or "Run Tests", depending on what you want to do.
You can click on the windows drop down, select "Test Explorer, build the solution, and run/debug accordingly from there..

Can not save specific step as test fragment

I am facing an issue with Jmeter, that I hope to solve. I want to create modular frame work and to use include controller. The problem is that when I am on some step for example loop controller, and I want to save it as test fragment, I press the right button and save as test fragment it saved all the test plan.
I just want Jmeter to save the specific step, not all test plan. Would someone please advise if I want only a single step to be test fragment, how can I do it in jmeter? I just want to save the step and than use include controller for all tests, can some one please elaborate using PIC and step by step reproduce?
Is it possible to make loop controller test fragment? for other tests?
To use Loop Controller as fragment follow the following steps:
Right click on Loop Controller -> Save as Test Fragment
Save in file loop.jmx
Disable/Remove Loop from your test plan
Add Include Controller (where Loop were)
Click Browse and choose the saved fragment loop.jmx
Your test is ready to work as it worked before with loop.jmx usable JMeter script.

CodedUI Visual Studio: How to wait for browser load

I was wondering if anyone new how to make the Automation Script in CodedUI wait for the web page to load before continuing on with the script.
So I fill out a form and press the "Continue" button, then the script times out because it gives up waiting. I realise I could use Playback.wait but then I would have code this each time I click continue.... and I have hundreds of scripts! Something similar to Seleniums WaitforBrowserLoad but for CodedUI
C# CodedUI in VS 2012
Any help would be appreciated.
In my experience, Coded UI is excellent about waiting for page loads to be complete before continuing test execution. That said, you can force a wait for a specific control to exist with WaitForControlExist method. This method is a member of the base class of all UI controls, UITestControl.
You could also use:
Playback.PlaybackSettings.WaitForReadyLevel = WaitForReadyLevel.AllThreads;
Sounds like your issue could be fixed if you create a settings file and increase the timeout.
Directions Here: Specifying Test Settings in Visual Studio
You could also call the WaitForControlReady method on the browser window object.
ex:
_browserWindow.WaitForControlReady(60000); //Should wait for 1 min

How can I add a bit of custom functionality to every CRM 2011 grid ribbon?

I have a small bit of custom functionality which I need to run from each and every grid ribbon in CRM 2011. The functionality is in a JS web-resource and I can attach it to a button enable rule and it all works fine.
The issue is that I need this to run on every grid in CRM, but I'm struggling to find something in the ribbon which appears on every screen. I did try attaching it to one of the buttons in the Jewel menu, but this only fires if the user clicks on the "File" tab.
Any thoughts...?
The jewel menu button is a good idea.
Add an anonymous JavaScript function to the library you are adding to the jewel button.
This will run when the library is loaded, just after the page loads:
var whatever = 30; // maybe you do not need a parameter
(function (what) {
/* Do what you need to do */
}(whatever));
If it’s on premise I‘d inject my script to the ribbon.js or global.js or some other js and ping from there.
Another option, less intrusive , is to use a resource that runs in each and every form i.e. myframewrok.js. This resource can check for the opener and inject the script to the opener dynamically.
A third options might be to ping a web service using a plug-in registered on execute or retrieve multiple messages which fire repeatedly for any grid in the system.
In the end we attached it to the "Advanced Find" button as this appeared on every ribbon that we needed the functionality on. The Jewel menu did not seem to work for us as it only fired when the user actually clicked the "File" button.

Resources