Automating the MS Dynamics CRM 365 testing and its Challenges with UFT and Test Complete Tools:
*
Automating MS Dynamics CRM testing with
Test Complete
https://www.youtube.com/watch?v=TqdhtgUum_Q
*
Automation the CRM Dialogs and Workflows.
* Challenges - Object
recognition
Problem : Silverlight, Ajax, flash/ Flex and HTML5
objects
Solution
: TC's Smart name mapping can read the Silverlight,
ajax,
Flash/Flex as well as HTML 5 Objects.
*
ii Challenger - Large volumes of data
~ Problem CRM deals with
large volume of data which need lot of maintenance
activities
Solution : TC provide "Data generator"
Options which supports
~ Database tables and queries
~ Excel
files
~ CSV files
* Automation Testing of Dynamics
365 CRM using UFT Demo
* Automation the CRM Dialogs and
Workflows.
* We can automate the MS dynamic crm365
with the default add-ins of Uft. Since it is a cloud web app. With
few silverlight components and activeX objects in Crm?
I think
you are right regarding the uft add-ins. I never did a full project
on Ms Dynamics. But I have done a POC on it and not the most easy
product to talk to me. You will need to build some custom functions
for maybe the menu items and maybe some of the list objects for UFT
to work. So just record playback is not going to work very
well
Customer wanting to use UFT against Microsoft Dynamics. There
is a side menu on the left that you have to cease properly as a web
menu class but they are typically challenging to work with. Sometimes
you may have to just use a click on a web element instead of
navigating the menu Tree on the left.
* Where did you do this
pic inside Citrix server, you have both uft and Ms dynamic 365 or you
have your UFT installed inside the Ms dynamic 365 cloud server?
Yea,
The browser is on your machine. The application is instead on the
cloud.
* When it comes to Citrix both the application and
browser are on the Citrix machine even though you see the browser on
your local. That's why UFT will not recognize it.
*
Automation Testing of Dynamics 365 CRM using Selenium
Demo
https://www.youtube.com/watch?v=kjNpi1DG8zo
* CRM
Application Cases | Login Case in Crm | Qtp Interview
question
https://www.youtube.com/watch?v=EpU4hIDsEhw
Q1
What is MS Dynamic CRM?
Microsoft Dynamics CRM is a customer
relationship management software developed by Microsoft. It is one of
the popular CRM tools available in the market to enhance the customer
relationship of any organization. Microsoft Dynamics CRM’s major
features mainly focus on marketing, sales and customer service
segments. The XRM platform of Microsoft Dynamics would allow multiple
types of customization to this software.
q2 What is a
plug-in?
A plugin is defined as a custom business logic that can
be installed in Microsoft Dynamics CRM to make customizations or to
enhance the standard behavior of the platform. Plugins help in
handling various events and each plugin executes a specific event. In
general, the Plug-ins are written in VB or C# can run an asynchronous
or synchronous mode.
q3. What is workflow?
The main
role of workflows is to automate the various simple and complex
functionalities in CRM. There are two ways to create CRM
functionalities: one is using out-of-the-box functionalities and the
other is for automating complex functionalities by writing custom
workflows using .NET code. Workflow processes can be run either in
real-time or background.
In general, Workflows can be
triggered based on specific events or conditions or events being done
by the users. The Windows Workflow Foundation is internally used in
CRM to implement workflows.
q4.
Difference between WorkFlow and Dialogues?
Workflow refers to the
Asynchronous process and requires no user input. It is a background
process. Whereas dialogue works based on the asynchronous process and
a user needs to give input.
q5 What is email router in
MS D CRM?
E-mail router is a software application and creates an
interface between Microsoft Dynamics CRM deployment and the
organization’s messaging system. This component is needed to
install and configure in the supported environment. After completion
of the installation and configuration process of the E-mail, Router
transfers the incoming emails to the Microsoft Dynamics platform and
sends the outgoing message created by various users and
systems.
Note : As an automation test we do automate the email
status not the email subject and content and email in the inbox for
now. Which is also automatable.
q6 List all components can
be added to a solution?
Below mentioned is the list of components
that can be added to a Solutions:
Article
Template
Chart
Contract Template
Email Template
Entity
Relationship
Field Security Profile
Mail Merge Template
Option
Set
Process
SDK Message Processing Step
Service Endpoint
Web
Resource
Business Rule
Connection
Role
Dashboard
Entity
Field
Form
Message
Plug-in
Assembly
Report
Security Role
Site Map
Q7 What is
meant by managed properties?
Managed properties will help you in
identifying the components of the managed solutions that can be
customized. If you wish to apply managed properties then you need to
include an entity using a managed solution and download it into
another environment. These settings will give the power to Solution
makers to restrict or impose restrictions on the users to make
customizations. If you wish to set managed properties for an entity
all you need to do is select the entity from the menu bar and click
on the Managed Properties.
Q8.What are all new components
that can be created from a solutions?
Following are the list of
new components that can be collected from a solution:
Entity
Web
Resources
Dashboards
Connection Roles
Templates (Mail merge,
Email, contract, and Article)
Option
sets
Processes
Reports
Security Roles
Field security
profiles
Q9. What is a publisher in MS CRM?
In MS CRM
each solution has a publisher. The publisher component works closely
with data sources to track modifications over a specific time period.
The Microsoft dynamics comes with a default publisher named with
“Default Publisher for”. You can also have a chance to create a
customized publisher for a solution.
Can MS Dynamics CRM
365 be automated through HPSoftware #QTP?
Yes, it is possible
using QTP.
Recently I have automated Create account
functionality in Microsoft Dynamic CRM using UFT (QTP 12) with
default ad ins.
Why work with
Syncfusion?
-------------------------
At Syncfusion, our
mission is to produce world-class software components that enable
developers to produce quality software for the most demanding
environments. Our 100% C# components for Windows Forms, ASP.NET,
ASP.NET MVC, Back Office, Silverlight, Business Intelligence, and WPF
applications empower you to “deliver innovation with ease.”
Each
of our products has a unique and useful feature set that developers
find to be an indispensable part of their programming arsenal.
Working with Syncfusion, you can quickly and easily add cutting-edge
functionality and the very latest look and feel to your .NET
applications. Using Syncfusion’s components also takes the grunt
work out of the development cycle, freeing you to focus on the core
business logic of your applications.
Built with the future in
mind - Our products are geared toward long life-cycle applications
and are architected to meet the highest standards for flexibility and
long-term maintainability.
First-rate technical support - Our
team’s 24x5 availability and online, phone, and forum-based support
ensure you’ll get the answer you need, when you need it.
Full
source code - We believe in empowering developers with source code;
ours is written to be redistributed and shipped in a tightly
integrated manner-use our components in debug mode at the “flick of
a switch.”
Quicker resolution of support issues - With a source
license installed, the complete call stack is available to your
engineers and our support personnel. This can lead to a substantially
better understanding of any issues that arise.
Better
understanding of code/sequence, leading to fewer errors - Our
components are designed to be extensible. Understanding the actual
code flow when extending or plugging functionality into our
components is valuable; with a source license, you can step directly
into our code from within the IDE, just as you would your own
code.
Access to debugging information, leading to improved
productivity - When working with our components, you have access to
debugging information, as afforded by the source code
edition-invaluable in improving overall
productivity.
Straightforward, flexible licensing - Syncfusion
components are licensed on a per-developer basis with no royalties,
run-times, or server-deployment fees. Each licensed developer may
install on multiple personal machines at work and home.
A viable
base for standardization - The wide range of solid products in our
suites allows our customers to reduce their dependence on multiple
vendors and streamline component use. For more information, go to the
Standardization page.
*
About Silverlight :
---------------------
Microsoft Silverlight
is a deprecated application framework designed for writing and
running rich web applications, similar to Adobe's own runtime, Adobe
Flash. A plugin for Silverlight is still available for a very small
number of browsers. It is a Freeware, Which work on Operating system:
Microsoft Windows, macOS, and Symbian OS
10
Things You Should Know About Microsoft's Silverlight
:
---------------------------------------------------------
1.
Silverlight Avoids Cross-Browser/OS Issues
For most
development teams, developing a website that will work identically
with the popular browsers of the day (including Internet Explorer,
Firefox, Safari and Opera) is a difficult proposition. The problem is
not simply the necessity for multiple code implementations but also
exponentially large testing sets. As a developer creates matrices of
browser versions and operating systems, the number of test beds
needed becomes enormous.
2.
Silverlight 1.1 Is the Real Story
The recent Release Candidate of
Silverlight 1.0 has many organizations considering whether they
should start working with Silverlight. While Silverlight 1.0 has many
important and interesting features, in reality most Silverlight
adoption hangs on its anticipated 1.1 release.
3.
Silverlight Uses Technologies Your Developers Already
Know
Silverlight is built with existing Microsoft technologies: a
mix of Windows Presentation Framework-like XAML (XML application
markup language), JavaScript and .NET technologies.
The
version of Silverlight you choose to introduce to a new project will
likely depend on your development team's skill set. If your
development team primarily does heavy ASP.NET server-side development
(mostly C# and VB.NET), you should wait until Silverlight 1.1 is
available. If your team is adept at client-side languages like
JavaScript, Silverlight 1.0 is a great platform to introduce.
4.
Silverlight UI Is just Markup...Like HTML
XAML is the
Silverlight's Lingua Franca for user interface design.
5.
Silverlight and Ajax Technologies Are Complementary
The Web is
evolving. When the Web was new, back in the 1990s, everyone warned
that developers should move as much as possible to the server so the
application could scale. While this works well technically, it
hampered the user experience. Now Ajax is all the rage. Simply put,
Ajax writes code directly in the browser to enable better user
interaction. The canonical example of this is Google maps (or
Microsoft's Live maps, if you prefer).
6. Silverlight Allows
Developers and Designers to Work Together
The Web has forced
development teams to think more about design and aesthetics.
Responsive user experience and intuitive interfaces have become the
norm instead of the exception. This happens, usually, by involving
artistic and user experience skills in application development.
Today, that is accomplished by employing artists to come up with the
design for a website.
For Silverlight, the primary design tool
is Expression Blend, which allows creation of XAML in a way that is
comfortable and familiar to designers. Using Blend is like Adobe
Illustrator or Photoshop.
7. Silverlight Deliverables Are Not
Atomic
Silverlight is delivered to a Web browser in pieces. This
means the code is in one or more packages (JavaScript files,
assemblies, etc.), the design is delivered as one or more packages
(as XAML files), and other assets are separately delivered (including
images, fonts and video). First-time Silverlight developers who are
familiar with Flash's single-file deliverable may consider this a
detraction to the Silverlight platform.
8. Silverlight Is
New
As of this writing, Silverlight 1.0 is in a Release
Candidate state and Silverlight 1.1 is in Alpha Release.
9.
Silverlight XAML versus WPF XAML
It is easy to tout XAML as a
great benefit because Microsoft's Windows Presentation Foundation
(WPF) also uses XAML. Unfortunately, these benefits are not as
compelling as it may seem, for two solid reasons: low WPF adoption
and the differences between WPF XAML and Silverlight XAML.
10.
Silverlight Is a Great Way to Learn XAML
Developers trying to
learn XAML and to come up to speed on the technology will appreciate
Silverlight as a way to create clear and concise code.
Ref:
https://www.cio.com/article/2438290/10-things-you-should-know-about-microsoft-s-silverlight.html
~*~*~* ~*~*~* ~*~*~* ~*~*~* ~*~*~* ~*~*~* ~*~*~* ~*~*~* ~*~*~* ~*~*~* ~*~*~* ~*~*~* ~*~*~* ~*~*~* ~*~*~* ~*~*~* ~*~*~* ~*~*~* ~*~*~* ~*~*~* ~*~*~* ~*~*~*
Dictionary Object in UFT \QTP \ Vbscript :
-----------------------------------------
‘Dictionary Object‘ in UFT/QTP. Note that, this is not something very QTP specific. Dictionary object was developed by Microsoft and is part of VB Scripting.
What is Dictionary Object?
In Dictionary object is similar to a typical array. The difference between a dictionary object and an array is that there is a unique key associated with every item of dictionary object. This unique key can help you in calling that item as and whenever required.
What is the syntax and how can we use dictionary object?
Shown below is a typical script.
Dim dict ' Create a variable.
Set dict = CreateObject("Scripting.Dictionary")
dict.Add "Company", "HP" ' Adding keys and corresponding items.
dict.Add "Tool", "QuickTest Pro"
dict.Add "Website", "LearnQTP"
dict.Add "Country", "India"
dict is an object of class Scripting.Dictionary.
Company-HP
Tool-QuickTest Pro
Website-LearnQTP
Country-India
are key-item pairs that were added using Add method on dict object.
Other methods available for dictionary object are Exists Method, Items Method, Keys Method, Remove Method, RemoveAll Method
Using Exists Method to check whether the key Country exists?
If dict.Exists("Country") Then
msg = "Specified key exists."
Else
msg = "Specified key doesn't exist."
End If
Using Items and Keys method to retrieve ALL items and keys respectively from inside dictionary object.
i = dict.Items ' Get the items.
k = dict.Keys ' Get the keys.
For x = 0 To dict.Count-1 ' Iterate the array.
msgbox i(x) & " :" & k(x)
Next
Using Remove method to remove Website – Learn QTP pair from the object.
dict.Remove("Website")
Using Remove all method to clear the dictionary
dict.RemoveAll ' Clear the dictionary.
* Count the number of occurrences of a character in a given string
How will you count the total number of occurrences of all characters in a given string?
So, if a string is Meenakshisundharam Manikam. The output should be M2 e2 n3 a5 k2 s2 h2 i2 u1 d1 r1 m2 1
Here is the solution using Dictionary approach
Dim InputStr, Str
'Input String Dynamic
'InputStr = InputBox("Enter a Input String for finding the number of Occurrence / Duplicate Characters in VB Script")
'Input String Static
InputStr = "Meenakshisundharam Manikam"
'InputStr = "MeeNNNaaaaKKKKKssssssHHHHHHHiiiiiiii"
Str = InputStr
Call FnCount(Str)
Function FnCount(Str)
Dim InputStr1, InputStr2, objDic, ChkDup, Cnt, i, d
Set d = CreateObject("Scripting.Dictionary")
For i = 1 to Len(Str)
temp = 0
'Check if the key already exists
If d.Exists(mid(Str,i,1)) Then
temp = d.Item(mid(Str,i,1)) 'Assign item to temp
temp = CInt(temp) + 1 'Since temp is string convert to integer
d.Item(mid(Str,i,1)) = temp 'Update the key
else
d.Add mid(Str,i,1), 1 'if key doesn't exist, add it
End If
Next
sCharacters = d.Keys ' Get the keys.
iOccurrence = d.Items ' Get the items.
For x = 0 To d.Count-1 ' Iterate the array.
'msgbox sCharacters(x) & " :" & iOccurrence(x)
InputStr1 = sCharacters(x)&iOccurrence(x) &" "
InputStr2 = InputStr2 + InputStr1
Next
MsgBox InputStr2
End Function
Refer to : https://www.learnqtp.com/dictionary-object-qtp-use/
* What are the places where it can be used?
When you want to share data between different actions in a test, dictionary object can be used. To do this you should create a reserved test object for the Dictionary object. Here is a process to set up a reserved dictionary object. [Source]
Open Window’s registry by opening a Run window and entering regedit.
Navigate to HKEY_CURRENT_USERSoftwareMercury InteractiveQuickTest ProfessionalMicTestReservedObjects.
Create a new key (folder) named GlobalDictionary by right-clicking on the ReservedObjects key and selecting New -> Key.
Under the new key, create a String value named ProgID by right-clicking on GlobalDictionary and selecting New -> String Value.
Assign “Scripting.Dictionary” to the new ProgID string value by right-clicking on ProgID and selecting “Modify.”
If QTP window is already open you need to close and restart it.
Now to check whether dictionary object was installed successfully in registry, simple write GlobalDictionary. (don’t forget the dot) and you should see a drop-down containing all methods and properties associated with dictionary object.
GlobalDictionary : Methods are :
+ Add
- CompareMode
- Count
+ Exits
+ Item
- Items
+ Key
- keys
- Remove
- RemoveAll
* Difference between dictionary and array in QTP
Here is the difference between Array and dictionary in QTP.
Below comparison illustrates when we should use array and dictionary.
-----------------------------------------------------------------------------------------------------------------------------------------------
Array Dictionary
-----------------------------------------------------------------------------------------------------------------------------------------------
1 We can have dynamic array We do not have concept called dynamic Dictionary.
2 Before use of array we must set the size of array We do not need to set the size of dictionary.
3 Before adding extra element into dynamic array, We do not need to write any statement to add extra element. We just use add method.
We have to use redim statement
4 We do not have any method to release the memory, We can remove the element that is not required any longer.
if particular element is not required
-----------------------------------------------------------------------------------------------------------------------------------------------
* Dictionary object has many in built functions that help us add, remove, access the elements by unique key.
That is why we must use dictionary over array.
~*~*~* ~*~*~* ~*~*~* ~*~*~* ~*~*~* ~*~*~* ~*~*~* ~*~*~* ~*~*~* ~*~*~* ~*~*~* ~*~*~* ~*~*~* ~*~*~* ~*~*~* ~*~*~* ~*~*~* ~*~*~* ~*~*~* ~*~*~* ~*~*~* ~*~*~*