SlideShare a Scribd company logo
1 of 23
MobileAPI + CRM – using
application related .xml
files to build part of an
automation framework
TSIMAFEI AVILIN
JANUARY 30, 2016
• Tsimafei Avilin
• 9+ years in IT - 3 years in Functional Testing,
6+ years in Automation Testing
• Test automation optimization, Test automation
frameworks, Test Automation strategy
• Test Automation, Test Frameworks, Resource
Management, QTP, TestComplete, WebDriver, API
testing, .NET Automation, etc.
ABOUT ME
Problem statement
4CONFIDENTIAL
General example of passing data
5CONFIDENTIAL
CRM + Mobile example
CRM Mobile
• FetchXML is a proprietary query language that is used in Microsoft Dynamics CRM Online 2016 Update and Microsoft
Dynamics CRM 2016 (on-premises). It’s based on a schema that describes the capabilities of the language. The FetchXML
language supports similar query capabilities as query expressions. In addition, it’s used as a serialized form of query,
used to save a query as a user-owned saved view in the userquery entity and as an organization-owned saved view in
the savedquery entity. link
6CONFIDENTIAL
Simple test scenario
TC: Get all companies
• Login
• Verify all companies passed from the server
• Verify all companies have correct data
7CONFIDENTIAL
Common scenario
8CONFIDENTIAL
Getting actual and expected data in TAF
9CONFIDENTIAL
Company object
Company object has many properties, how do you
decide which properties to use to:
- create fetchXML;
- parse response;
- Compare actual and expected data;
- How to store properties?
DB
HTML (response from mobile API)
10CONFIDENTIAL
What you
gonna do?
11CONFIDENTIAL
Approach #1 : Kick and Get (KAG)
Role 1 Role 2
12CONFIDENTIAL
Approach #2 : Cry and Get (CAG)
Role 1 Role 2
13CONFIDENTIAL
Approach# 3: Think and Get (TAG)
тельняшка?
14CONFIDENTIAL
Application architecture
15CONFIDENTIAL
ANALYZE VIEW AND…
16CONFIDENTIAL
… OBJECT
17CONFIDENTIAL
Reading xml files
Both MobileAdapter and TAF read xml files
located on the server independently
18CONFIDENTIAL
Get view and object data
Views xml files Entities xml files
19CONFIDENTIAL
Using it in your TAF
public static string[]
GetUniqueXRMPropertiesByListView(EntityType ID, string listview)
{
var controls = GetAllControls(listview);
var ignoreprop = GetIgnoreInCRMQueryProperties(ID);
var props = controls.Where(c =>
ignoreprop.Contains(c.Property) != true)
.Select(c => c.Property)
.Distinct()
.ToArray();
return props;
}
[DllImport("advapi32.DLL", SetLastError = true)]
public static extern int LogonUser(string lpszUsername,
string lpszDomain, string lpszPassword, int dwLogonType, int
dwLogonProvider, ref IntPtr phToken);
public void CreateRecentFile(XDocument xDoc, string
fileName)
{
IntPtr admin_token = default(IntPtr);
WindowsIdentity wid_current =
WindowsIdentity.GetCurrent();
WindowsIdentity wid_admin = null;
WindowsImpersonationContext wic = null;
try
{
20CONFIDENTIAL
Workflow
21CONFIDENTIAL
fetchXML files examples
You can check XML file contains information about
• search
• aggregate
• filtering/sorting
• whatever you have in xml to be under test…
22CONFIDENTIAL
• NOT NEED TO THINK ABOUT
PROPERTIES CHANGES
• SIMPLE PARSING OF XML FILES
• SET OF PROPERTIES IS GENERATED ON
FLY
CONS PROS
PROS AND CONS
• DIFFICULT TO UNDERSTAND THIS
APPROACH
• CROSS DOMAIN ISSUES
• DO YOU HAVE SOMETHING TO ADD?..
You even can control set of properties in xml file by creating kind of ‘template’ set
And hence improve performance by removing unnecessary properties from dev. xml;
23CONFIDENTIAL
Thank you for your
attention!
Questions?
Благодарствую-с за оказаные почести, судари и барышни!

More Related Content

Similar to MobileAPI + CRM – using application related .xml files to build part of an automation framework

Hibernate reference1
Hibernate reference1Hibernate reference1
Hibernate reference1
chandra mouli
 
Using and Extending the Eclipse Test and Performance Tools Platform (TPTP) fo...
Using and Extending the Eclipse Test and Performance Tools Platform (TPTP) fo...Using and Extending the Eclipse Test and Performance Tools Platform (TPTP) fo...
Using and Extending the Eclipse Test and Performance Tools Platform (TPTP) fo...
Ashish Patel
 
Muves3 Elastic Grid Java One2009 Final
Muves3 Elastic Grid Java One2009 FinalMuves3 Elastic Grid Java One2009 Final
Muves3 Elastic Grid Java One2009 Final
Elastic Grid, LLC.
 
C# .NET Developer Portfolio
C# .NET Developer PortfolioC# .NET Developer Portfolio
C# .NET Developer Portfolio
cummings49
 

Similar to MobileAPI + CRM – using application related .xml files to build part of an automation framework (20)

Hibernate reference1
Hibernate reference1Hibernate reference1
Hibernate reference1
 
Near real-time anomaly detection at Lyft
Near real-time anomaly detection at LyftNear real-time anomaly detection at Lyft
Near real-time anomaly detection at Lyft
 
Using and Extending the Eclipse Test and Performance Tools Platform (TPTP) fo...
Using and Extending the Eclipse Test and Performance Tools Platform (TPTP) fo...Using and Extending the Eclipse Test and Performance Tools Platform (TPTP) fo...
Using and Extending the Eclipse Test and Performance Tools Platform (TPTP) fo...
 
Vertex AI - Unified ML Platform for the entire AI workflow on Google Cloud
Vertex AI - Unified ML Platform for the entire AI workflow on Google CloudVertex AI - Unified ML Platform for the entire AI workflow on Google Cloud
Vertex AI - Unified ML Platform for the entire AI workflow on Google Cloud
 
Cisco connect montreal 2018 saalvare md-program-xr-v2
Cisco connect montreal 2018 saalvare md-program-xr-v2Cisco connect montreal 2018 saalvare md-program-xr-v2
Cisco connect montreal 2018 saalvare md-program-xr-v2
 
Architecting for Real-Time Insights with Amazon Kinesis (ANT310) - AWS re:Inv...
Architecting for Real-Time Insights with Amazon Kinesis (ANT310) - AWS re:Inv...Architecting for Real-Time Insights with Amazon Kinesis (ANT310) - AWS re:Inv...
Architecting for Real-Time Insights with Amazon Kinesis (ANT310) - AWS re:Inv...
 
Advanced Appium Tips & Tricks with Jonathan Lipps
Advanced Appium Tips & Tricks with Jonathan LippsAdvanced Appium Tips & Tricks with Jonathan Lipps
Advanced Appium Tips & Tricks with Jonathan Lipps
 
Customer Presentation - Financial Services Organization
Customer Presentation - Financial Services OrganizationCustomer Presentation - Financial Services Organization
Customer Presentation - Financial Services Organization
 
Toward a Standardized XMAN Presentation Layer with Consideration of User Inte...
Toward a Standardized XMAN Presentation Layer with Consideration of User Inte...Toward a Standardized XMAN Presentation Layer with Consideration of User Inte...
Toward a Standardized XMAN Presentation Layer with Consideration of User Inte...
 
How to Perform Forensics on AWS Using Serverless Infrastructure (SEC416-R1) -...
How to Perform Forensics on AWS Using Serverless Infrastructure (SEC416-R1) -...How to Perform Forensics on AWS Using Serverless Infrastructure (SEC416-R1) -...
How to Perform Forensics on AWS Using Serverless Infrastructure (SEC416-R1) -...
 
Better IT Operations and Security through Enhanced z/OS Analytics: New Featur...
Better IT Operations and Security through Enhanced z/OS Analytics: New Featur...Better IT Operations and Security through Enhanced z/OS Analytics: New Featur...
Better IT Operations and Security through Enhanced z/OS Analytics: New Featur...
 
IBM Operations Analytics For z Systems V2.2 - Client Long Pres
IBM Operations Analytics For z Systems V2.2 - Client Long PresIBM Operations Analytics For z Systems V2.2 - Client Long Pres
IBM Operations Analytics For z Systems V2.2 - Client Long Pres
 
Observability for Modern Applications (CON306-R1) - AWS re:Invent 2018
Observability for Modern Applications (CON306-R1) - AWS re:Invent 2018Observability for Modern Applications (CON306-R1) - AWS re:Invent 2018
Observability for Modern Applications (CON306-R1) - AWS re:Invent 2018
 
Hybrid framework
Hybrid frameworkHybrid framework
Hybrid framework
 
.net Framework
.net Framework.net Framework
.net Framework
 
Apache Eagle in Action
Apache Eagle in ActionApache Eagle in Action
Apache Eagle in Action
 
Muves3 Elastic Grid Java One2009 Final
Muves3 Elastic Grid Java One2009 FinalMuves3 Elastic Grid Java One2009 Final
Muves3 Elastic Grid Java One2009 Final
 
Using Sumo Logic - Apr 2018
Using Sumo Logic - Apr 2018Using Sumo Logic - Apr 2018
Using Sumo Logic - Apr 2018
 
Silverlight Development & The Model-View-ViewModel Pattern
Silverlight Development & The Model-View-ViewModel PatternSilverlight Development & The Model-View-ViewModel Pattern
Silverlight Development & The Model-View-ViewModel Pattern
 
C# .NET Developer Portfolio
C# .NET Developer PortfolioC# .NET Developer Portfolio
C# .NET Developer Portfolio
 

More from Tsimafei Avilin

UI Automation_White_CodedUI common problems and tricks
UI Automation_White_CodedUI common problems and tricksUI Automation_White_CodedUI common problems and tricks
UI Automation_White_CodedUI common problems and tricks
Tsimafei Avilin
 

More from Tsimafei Avilin (11)

Gop-stop automated testing
Gop-stop automated testingGop-stop automated testing
Gop-stop automated testing
 
К истории этимологии лексемы ‘волынка’
К истории этимологии лексемы ‘волынка’К истории этимологии лексемы ‘волынка’
К истории этимологии лексемы ‘волынка’
 
UI Automation_White_CodedUI common problems and tricks
UI Automation_White_CodedUI common problems and tricksUI Automation_White_CodedUI common problems and tricks
UI Automation_White_CodedUI common problems and tricks
 
Client side performance analysis
Client side performance analysisClient side performance analysis
Client side performance analysis
 
Ethnobostronomy
EthnobostronomyEthnobostronomy
Ethnobostronomy
 
Зоркі жывуць у арнаменце
Зоркі жывуць у арнаменцеЗоркі жывуць у арнаменце
Зоркі жывуць у арнаменце
 
Belarusian ethnoastronomy - "Living Heritage" UNESCO conference Minsk 2014
Belarusian ethnoastronomy - "Living Heritage" UNESCO  conference Minsk 2014Belarusian ethnoastronomy - "Living Heritage" UNESCO  conference Minsk 2014
Belarusian ethnoastronomy - "Living Heritage" UNESCO conference Minsk 2014
 
зорнае неба вачамі беларуса
зорнае неба вачамі беларусазорнае неба вачамі беларуса
зорнае неба вачамі беларуса
 
Belarusian folklore ethnolinguistics atlas
Belarusian folklore ethnolinguistics atlasBelarusian folklore ethnolinguistics atlas
Belarusian folklore ethnolinguistics atlas
 
The "Duda" and "Wolynka" Lexical Units in the Dictionaries of Eastern Europe ...
The "Duda" and "Wolynka" Lexical Units in the Dictionaries of Eastern Europe ...The "Duda" and "Wolynka" Lexical Units in the Dictionaries of Eastern Europe ...
The "Duda" and "Wolynka" Lexical Units in the Dictionaries of Eastern Europe ...
 
беларуская этнаастраномія
беларуская этнаастраноміябеларуская этнаастраномія
беларуская этнаастраномія
 

Recently uploaded

+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 

Recently uploaded (20)

MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verifiedSector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptxBUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 

MobileAPI + CRM – using application related .xml files to build part of an automation framework

  • 1. MobileAPI + CRM – using application related .xml files to build part of an automation framework TSIMAFEI AVILIN JANUARY 30, 2016
  • 2. • Tsimafei Avilin • 9+ years in IT - 3 years in Functional Testing, 6+ years in Automation Testing • Test automation optimization, Test automation frameworks, Test Automation strategy • Test Automation, Test Frameworks, Resource Management, QTP, TestComplete, WebDriver, API testing, .NET Automation, etc. ABOUT ME
  • 5. 5CONFIDENTIAL CRM + Mobile example CRM Mobile • FetchXML is a proprietary query language that is used in Microsoft Dynamics CRM Online 2016 Update and Microsoft Dynamics CRM 2016 (on-premises). It’s based on a schema that describes the capabilities of the language. The FetchXML language supports similar query capabilities as query expressions. In addition, it’s used as a serialized form of query, used to save a query as a user-owned saved view in the userquery entity and as an organization-owned saved view in the savedquery entity. link
  • 6. 6CONFIDENTIAL Simple test scenario TC: Get all companies • Login • Verify all companies passed from the server • Verify all companies have correct data
  • 8. 8CONFIDENTIAL Getting actual and expected data in TAF
  • 9. 9CONFIDENTIAL Company object Company object has many properties, how do you decide which properties to use to: - create fetchXML; - parse response; - Compare actual and expected data; - How to store properties? DB HTML (response from mobile API)
  • 11. 11CONFIDENTIAL Approach #1 : Kick and Get (KAG) Role 1 Role 2
  • 12. 12CONFIDENTIAL Approach #2 : Cry and Get (CAG) Role 1 Role 2
  • 13. 13CONFIDENTIAL Approach# 3: Think and Get (TAG) тельняшка?
  • 17. 17CONFIDENTIAL Reading xml files Both MobileAdapter and TAF read xml files located on the server independently
  • 18. 18CONFIDENTIAL Get view and object data Views xml files Entities xml files
  • 19. 19CONFIDENTIAL Using it in your TAF public static string[] GetUniqueXRMPropertiesByListView(EntityType ID, string listview) { var controls = GetAllControls(listview); var ignoreprop = GetIgnoreInCRMQueryProperties(ID); var props = controls.Where(c => ignoreprop.Contains(c.Property) != true) .Select(c => c.Property) .Distinct() .ToArray(); return props; } [DllImport("advapi32.DLL", SetLastError = true)] public static extern int LogonUser(string lpszUsername, string lpszDomain, string lpszPassword, int dwLogonType, int dwLogonProvider, ref IntPtr phToken); public void CreateRecentFile(XDocument xDoc, string fileName) { IntPtr admin_token = default(IntPtr); WindowsIdentity wid_current = WindowsIdentity.GetCurrent(); WindowsIdentity wid_admin = null; WindowsImpersonationContext wic = null; try {
  • 21. 21CONFIDENTIAL fetchXML files examples You can check XML file contains information about • search • aggregate • filtering/sorting • whatever you have in xml to be under test…
  • 22. 22CONFIDENTIAL • NOT NEED TO THINK ABOUT PROPERTIES CHANGES • SIMPLE PARSING OF XML FILES • SET OF PROPERTIES IS GENERATED ON FLY CONS PROS PROS AND CONS • DIFFICULT TO UNDERSTAND THIS APPROACH • CROSS DOMAIN ISSUES • DO YOU HAVE SOMETHING TO ADD?.. You even can control set of properties in xml file by creating kind of ‘template’ set And hence improve performance by removing unnecessary properties from dev. xml;
  • 23. 23CONFIDENTIAL Thank you for your attention! Questions? Благодарствую-с за оказаные почести, судари и барышни!

Editor's Notes

  1. P37 – divide into 2 slides