SAFARI TEST AUTOMATION: NAVIGATING THROUGH THE JUNGLE BY KARAN KUMAR AND JAMES CHUONG.

Slides:



Advertisements
Similar presentations
Automated Web Performance Testing Before 5pm
Advertisements

12 October 2011 Andrew Brown IMu Technology EMu Global Users Group 12 October 2011 IMu Technology.
Facts about Welcome to this video from Ozeki. In this video I will present what makes Ozeki Phone System XE the Worlds best on-site software PBX for Windows.
Networking Problems in Cloud Computing Projects. 2 Kickass: Implementation PROJECT 1.
Pubman and Selenium tests. What is Selenium Selenium is a suite of Web application test automation tools for any browser on any operating system –Firefox,
Technical Architectures
© 2010, Robert K. Moniot Chapter 1 Introduction to Computers and the Internet 1.
OCT1 Principles From Chapter One of “Distributed Systems Concepts and Design”
Microsoft ASP.NET AJAX - AJAX as it has to be Presented by : Rana Vijayasimha Nalla CSCE Grad Student.
.NET Mobile Application Development Introduction to Mobile and Distributed Applications.
Computer Science 101 Web Access to Databases Overview of Web Access to Databases.
Selenium – Testing Tool. What is Selenium? Selenium is a robust set of tools that supports rapid development of test automation for web-based applications.
Internet GIS. A vast network connecting computers throughout the world Computers on the Internet are physically connected Computers on the Internet use.
Android Introduction Platform Overview.
IT 210 The Internet & World Wide Web introduction.
1 The SpaceWire Internet Tunnel and the Advantages It Provides For Spacecraft Integration Stuart Mills, Steve Parkes Space Technology Centre University.
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
Selenium automated testing in Openbravo ERP Quality Assurance Webinar April 8th, 2010.
Val Kravets, Luis Sanchez, Allen Chung, Phillip Anderson, Leyla Norooz, Brian Ramnarian, Todd Watson.
Jaeki Song ISQS6337 JAVA Lecture 16 Other Issues in Java.
Java Mobile Apps with GWT & PhoneGap Josh Marinacci, webOS Developer Advocate.
Java applet
M1G Introduction to Database Development 6. Building Applications.
2004/12/02Slide Number 1 of 15 Exposure Time Calculator (ETC) as a Web Service Donald McLean 2004 Technology Open House.
Client – Server Architecture. Client Server Architecture A network architecture in which each computer or process on the network is either a client or.
Scalable Web Server on Heterogeneous Cluster CHEN Ge.
Syzygy Design overview Distributed Scene Graph Master/slave application framework I/O Device Integration using Syzygy Scaling down: simulators and other.
NETWORK HARDWARE AND SOFTWARE MR ROSS UNIT 3 IT APPLICATIONS.
Web Automation Testing With Selenium By Rajesh Kanade.
Pubman and Selenium tests. What is Selenium Selenium is a suite of Web application test automation tools for any browser on any operating system –Firefox,
NA-MIC National Alliance for Medical Image Computing UCSD: Engineering Core 2 Portal and Grid Infrastructure.
Good MDM IOS Overview Presented by: Jerry Wen 02/09/2012.
Theia Technical Design Presentation 3. Theia Overview Theia’s purpose is to create three dimensional, virtual representations of a room. To allow the.
Basics of testing mobile apps
JS (Java Servlets). Internet evolution [1] The internet Internet started of as a static content dispersal and delivery mechanism, where files residing.
Chad Collins CEO Henry Chan CTO In Latin, nubifer means “bringing the clouds”
August 2003 At A Glance The IRC is a platform independent, extensible, and adaptive framework that provides robust, interactive, and distributed control.
HTML5 based Notification System for Updating E-Training Contents Yu-Doo Kim 1 and Il-Young Moon 1 1 Department of Computer Science Engineering, KoreaTech,
Web Services Using Visual.NET By Kevin Tse. Agenda What are Web Services and Why are they Useful ? SOAP vs CORBA Goals of the Web Service Project Proposed.
Cevgroup.org C utting E dge V isionaries. cevgroup.org TODAY’s TALK 1) Internet Of Things (IoT) 2) Wi-Fi Controlled Robots 3) Augmented Reality.
Perfecto’s CQ Lab using Selenium RemoteWebDriver & Appium
Intro to Web Services Dr. John P. Abraham UTPA. What are Web Services? Applications execute across multiple computers on a network.  The machine on which.
JavaScript and Ajax (Internet Background) Week 1 Web site:
Mobile Application Testing Mobile Application Testing.
Client – Server Architecture A Basic Introduction 1.
Selenium server By, Kartikeya Rastogi Mayur Sapre Mosheca. R
Test Automation Using Selenium Presented by: Shambo Ghosh Ankit Sachan Samapti Sinhamahapatra Akshay Kotawala.
LO2 Understand the key components used in networking.
Paul Hassall Pets At Home Mobile Commerce Deployment.
Test Automation For Web-Based Applications Portnov Computer School Presenter: Ellie Skobel.
WHAT'S THE DIFFERENCE BETWEEN A WEB APPLICATION STREAMING NETWORK AND A CDN? INSTART LOGIC.
By SPEC INDIA. TestComplete – An Introduction An automated testing tool by SmartBear – TestComplete is a comprehensive product with umpteen features and.
IF STARBUCKS USED INSTART LOGIC, THEY WOULD HAVE A FASTER RESPONSIVE WEBSITE BY PETER BLUM.
Arklio Studija 2007 File: / / Page 1 Automated web application testing using Selenium
Appium Studio Appium testing made easy at any scale.
AuraPortal Cloud Helps Empower Organizations to Organize and Control Their Business Processes via Applications on the Microsoft Azure Cloud Platform MICROSOFT.
Device Maintenance and Management, Parental Control, and Theft Protection for Home Users Made Easy with Remo MORE and Power of Azure MICROSOFT AZURE APP.
Web Concepts Lesson 2 ITBS2203 E-Commerce for IT.
Trial.iO Makes it Easy to Provision Software Trials, Demos and Training Environments in the Azure Cloud in One Click, Without Any IT Involvement MICROSOFT.
UI Test Automation with Appium
3.1 Types of Servers.
HTML5 based Notification System for Updating
Onlineitguru Selenium is one of the most widely used open-source tool that is used for testing software or Automation. It is licensed under Apache License.
Cross platform automated appium testing - A Primer
Automation for mobile apps Presenter: Nikita Mader
What is selenium? Selenium is a portable software-testing framework for web applications. Selenium provides a playback (formerly also recording) tool.
Internet Protocols IP: Internet Protocol
Running C# in the browser
MicroToken Exchange Data Security Solutions
Presentation transcript:

SAFARI TEST AUTOMATION: NAVIGATING THROUGH THE JUNGLE BY KARAN KUMAR AND JAMES CHUONG

At Instart Logic, our focus is on delivering high performance, engaging web experiences to users across devices with our Software-Defined Application Delivery (SDAD) approach, with a particular emphasis on optimizing for mobile devices. To this end, it is important for us to be able to test and quantify the performance improvements in application delivery that our service brings to the various web platforms.Software-Defined Application Delivery

With iOS being a dominant platform for e-commerce it is critical for us to optimize for this platform. In this post we’d like to focus on the particular challenges of Apple’s Safari browser on desktop and iOS, and our approach to automate testing of Safari and Mobile Safari, thus making it possible to find both functional and performance bottlenecks with websites on this key platform.iOS being a dominant platform for e-commerce SAFARI CHALLENGES Unlike other browsers, Safari does not offer much to automate the browser itself. To this effect it is important for us to identify issues listed in my colleague Rajaram Gaunker’s recent blog post “Holiday Wish List for Browser Makers – Requirements for an Open Web” in an automated and scalable way.Holiday Wish List for Browser Makers – Requirements for an Open Web In terms of performance, Apple recently added navigation timings as part of Safari 8 for OS X and iOS8, but unfortunately these were removed in iOS This makes it difficult to reliably measure performance on Safari. In addition, these issues generally tend to be non-trivial and can affect a website’s Quality of Experience, both in terms of functionality and performance.iOS 8.1.1

To this effect, we have developed a way to automate testing of Safari and Mobile Safari, enabling us to find both functional and performance bottlenecks with websites on the Safari platform. Now more on our approach and testing methodology. OUR APPROACH: ARCHITECTURE Our automated testing setup is currently a simple client-server model. The client starts a test and sends it to the server to run. In Selenium Grid terms, the client would be the user, the server is the hub, and currently the hub is its own node.Selenium Grid

We selected Selenium as the core driver for our automation testing, since it is the leading standard on several platforms, with many language bindings. Selenium provides the Safari driver with a JavaScript extension that allows it to control the Safari browser. It also provides the JSON Wire Protocol, which defines how implementations of the web drivers should communicate with browsers. Thus, all web drivers will have the same API and can easily drive any browser with the same code.JSON Wire Protocol One such implementation is Appium, the open source project that uses Selenium bindings to drive both Android and iOS applications, on real and simulated devices. In fact, as Selenium deprecated its own iPhone driver, it recommended that users use Appium or iOS-driver as a replacement. On the Appium side, there is an additional application being used — ios-webkit- debug-proxy by Google.Appiumios-webkit- debug-proxy We use Appium, which is a node.js server to get commands from Selenium. The node would need to be able to start and manage the Appium server to ensure that it is running and ready to drive the mobile device. Apple has JavaScript running through Instruments, a tool within XCode. Appium has Ruby and Java bindings to translate the Selenium API into Webkit’s Remote Debugging Protocol, and thus allows Selenium to automate iOS. Furthermore, the ios-webkit-debug-proxy is used to translate Webkit’s Remote Debugging Protocol into Apple’s iOS Webkit Debugging Protocol. In our case, we are starting a test remotely with our test configuration. The server receives this test configuration, applies the settings and runs the test. Using Selenium, it starts up the browser and routes web traffic through it. For mobile, the service starts up Appium and ios-webkit-debug-proxy, hooks onto Appium and starts Safari. Then, using Selenium to drive Safari, the server navigates to the given URLs.

Selenium itself can only perform very basic functional tests by driving the browser, without any way to measure performance. So in addition to Selenium, we use BrowserMob Proxy, which creates a local proxy that can route browser traffic. The proxy allows us to shape the network so that we can test under different network conditions. Furthermore, the proxy allows us to capture the network traffic into HTTP Archive Report (HAR) files so that we can see the time it takes to load elements on the page. It can be controlled via its RESTful APIs.BrowserMob Proxy Now that we are driving the mobile device, we just need to route the traffic from the device through the machine. Then, we can measure performance by routing that traffic through Browsermob. The traffic is received by the service, and recorded by Browsermob Proxy. The recorded data is written out as an HTTP Archive Report (HAR), and can be sent to a reporting software for details and aggregation.HAR MEASURING PERFORMANCE

Here’s a visual depiction of the automated testing: (

We hope you’ve found our take-aways on how to launch both functional and performance tests on Safari Desktop and Safari on iOS helpful. This has given us at Instart Logic a way to conduct a large battery of tests and enable us to deliver the best possible Quality of Experience on Safari with our SDAD platform. If you have thoughts on this and other possible approaches, we encourage you to share your comments with the community here. CONCLUSION

Visit our Blog for more information