Subscribe via Email

Subscribe to RSS feed

KnockoutJS MVVM Script Folder Structure

In the past couple of years, we have delivered several projects successfully which were based on MVC + KnockoutJS, they all applied the same structure or pattern, so I was thinking to get them out from several projects which we might reuse in the future projects, here is what I’d like to share, you may adopt it, or question it.

Read the rest of this post »

Posted in BI&Database

Settle newest iOS projects in Jenkins server – Part 2

Create & configure an IOS project in Jenkins

To create an iOS project in Jenkins, I recommend to get the project from a version control server, like git, gitlab, svn, etc. Here I use gitlab to clone my projects into Jenkins.


Read the rest of this post »

Settle newest iOS projects in Jenkins server – Part 1

Jenkins is a common-used open source continuous integration solution for many companies, it works well for a large range of projects, but Jenkins is not the first choice for Apple developers. Apple provided an independent CI server called Xcode Server which only works for Apple projects. But for many managers, it is always a better choice if there is an “one picture”solution which could settle all projects in a single CI server. And here is my solution to let the newest iOS projects (build by Xcode 6) work well in a Jenkins server. Read the rest of this post »

Setting up Jenkins with Git repository

This post introduces you the steps to setup Jenkins (Continuous Integration Server) with Git repository.


Read the rest of this post »

Access to ReportObjects of SAP Crystal Reports Programmatically

When you intend to create report utilizing SAP Crystal Reports for Visual Studio 2012, generally speaking, all the report content can be bound with some kinds of data source (like DataSet). However, in some particular scenarios, some report content is not bound to any data source, and you have to change them dynamically, such as report title, report filter criterion, this post introduces you to change the report object attributes programmatically in Visual Studio 2012.

Read the rest of this post »

How to set up Apple Touch ID for your own apps

It has been quite a while since Apple Inc. provided the fingerprint authentication API for developers to use the amazing feature “Touch ID” in their own apps, but it’s still hard for us to find out any Touch ID supported apps in App Store. This post will provide you a chance to touch this new authentication method and enable it in your apps.

Read the rest of this post »

Posted in mobile, Mobile APP

Automated Acceptance Test with AngularJS, Jasmine and Protractor

Want to do automated acceptance test in AngularJS web app? This post introduces you to the basics of building Automated Acceptance Test with AngularJS, Jasmine and Protractor.

Read the rest of this post »

Set Document ID Prefix Programmatically in SharePoint 2013

This post introduces you to a correct way to set up Document ID Prefix in SharePoint 2013. Immediately after you kick off the timer jobs for Document ID service in this approach, all of your documents under the new site will show up with correct prefix.

Read the rest of this post »

Agile Tour 2014 HangZhou Stop was held at Perficient China GDC

December 6th, as the sponsorship role, Perficient China GDC held the Agile Tour 2014 HangZhou Stop successfully. 106 Agile fans gathered in 6F of ShuiYou Building from 8:30 AM to 17:00 PM and enjoyed an one day Agile Tour. Read the rest of this post »

Posted in Agile, News

Test Complete over RIA Test for EXTJS applications


Our objective is to find a testing tool to automate the testing for EXTJS applications. A high level enterprise application based on EXTJS will have multiple UI controls floating around. The controls will have mostly dynamic values fetched from backend. Each UI control might take to many level of child pages and popup windows.

Problem Statement

Let us take some sample scenario to consider for automation. A login page that will take to a base page. The base page will have some set of buttons and clicking on each button will lead to its feature pages. From the feature page, there can be many child pages and pop-up windows.

The automate Testing tool

  • Should recognize the HTML and EXTJS UI components from the application
  • Support IE 8+ browsers and Firefox ( As these are most popular browsers for enterprise application )
  • Must be able to run a recordable test case
  • Should recognize UI components and its properties, so that they are accessible in script for cross testing.

After browsing through forums, we took the following testing tools for comparison: RIA Test and Test Complete.

Tool1: RIA Test

RIA Test tool is cross browser testing tool from Cogitek mainly specified for UI applications. It’s been mentioned that RIA Test recognizes EXTJS components. These were the pros and cons about the tool obtained from forum and its release notes. RIA Test tool can be downloaded from here.


  • EXTJS components are recognized
  • Able to run a recorded test well


  • HTML 5 components are not recognized in all IE browser versions
  • Automation works only if window is 100% zoom level
  • Tool needs to be restarted if test script abruptly stops


Tool2: Test Complete

Test Complete tool is from Smartbear. Smartbear offers a range of testing tool and test complete web module is for testing web applications. Pros and cons of the tool obtained from forum and site are as below. Test Complete can be downloaded from here.


  • UI components, HTML 5 components are recognized
  • Manually written scripts are supported, various scripting languages supported
  • Test results are provided with screenshots
  • Test can be recorded with or without script


  • In case of Firefox specific to versions, we need to manually import hooks to playback the recorded scripts
  • Some options on integrating with Performance Testing are not enabled in trail pack

Here is the comparison done on both the tools with respect to test creation/ tool installation.


 RIA Test

Test Complete
Setup Installation Can download and install trail pack any number of times

Can download and install trail pack only once after which we could not install trail pack again


Creation of Tests A project to be created with specified browser and test cases comes under the project

A project suite can have many projects. Test scripts comes under project


Debugger, Watch Windows, Results window Available Available
Handing browsers Need to manually install browser patches Mostly installed with software installation. Patches for browser upgrade after installation need to be manually added
Test case recordable with images or videos Yes Yes
Looping a test in all supported browsers A browser is specified for a project. Either multiple projects or manually change the browser after each execution Browser loop is available for each test
Asynchronous testing No Supported as mentioned here
Distributed Testing No Yes


Here is the comparison on same tools in creating solution to our problem statement.

Test case in IE and Firefox RIA Test Test Complete
Logging in and Launching base page Supported in both browsers Supported in both browsers
Button click and leading to feature page from base page Supported in both browsers Supported in both browsers
Buttons and components recognition in feature pages and its child pages Recognized in Firefox , not in IE Recognized in both browsers
Native HTML 5 components recognition Not supported Recognized
Manual scripts Supported with its own scripting language Supported with scripting languages which resembles VB, JAVA etc.
Performance Testing No Supported along with another tool of smart bear. Fully not available in trail pack
Documentation Not much Well maintained documentation
Forum response Responsive Responsive
UI Objects Properties Inspection No Yes

Testing on pages which takes more time to load like applet

Script abruptly stopped and only after restarted RIA Test, the tool worked further Once timeout the playback stops and logs the error and shows the result page


Why we pick Test Complete

Our application uses EXTJS as front end and the components are populated dynamically. We need object properties to be changed dynamically from scripts. Our application includes applets, so sometimes page response used to be slow. As testing resources spreads on onsite and offshore, in future distributed testing might be required. Test Complete meets all our expectations and we chose the same for our automated testing.

Posted in Testing