I recently want to write something about automated testing and automated frameworks, so I need to learn and add a lot of knowledge about automated tools and frameworks, in order to obtain first-hand information to complete your writing needs. Because the common and commonly used automated tools are only qtp and selenuim, other test tools are heard of their names and do not view and learn their related features, principles, and applicability. [Because it was easier to learn the same tool before learning other tools, and learning multiple tools at a time is easy to confuse, efficiency reduction] Now we need to understand automation at a higher level, and we need to consider how to better implement automation. If we still need to understand only one or two tools, the limitations of knowledge may be highlighted, so we need to learn automation knowledge from another aspect.
In other words, there are still a lot of automated testing tools, and there is no need to view all the testing tools. I personally think that when learning a lot of similar knowledge or related topics, take several steps:
1. Learn the common theories and principles of all similar knowledge [This is a commonality]
2. Learn the unique characteristics and skills of all similar knowledge [This is personality]
3. Use the learned knowledge appropriately based on the actual scenario [that is, use the personal part of the knowledge to solve specific problems]
The same is true for learning automated testing tools. If you were unwilling to learn too much before, you would be afraid of audio and video recognition. Now you have a fixed understanding of the original knowledge [that is, you have understood the basic principles ], in this way, you can learn new personalized things. This step aims to make proper use of the knowledge and smoothly carry out the automated testing tasks. The goal is sufficient!
Here, we will only list automation tools that we think have features. for similar products with identical principles, we will only list the best of them. For more tool lists, see here
Commercial tools:
1. qtp:
As we all know, recording, plug-ins, and extensions are supported. Currently, only Web plug-ins and default Windows functions are used. It is naturally easy to get started. You can use a script for recording and execute it, but the actual implementation is not the case. I personally think that the deployment of a large number of qtp automated tests is not its advantage, it does not have a good management framework for batch execution, even if it is integrated into QC, it is not very good. After all, it is a tool to call another tool. efficiency and performance are the first problem, and it seems very unprofessional; secondly, the object library files will be updated after each execution. The test results are separated without a unified and comprehensive evaluation. In general, qtp is more like a script development and debugging tool, but it is still insufficient in terms of test execution, script management, and planning. Generally, they are all self-written execution frameworks. Here we have to say that qtp provides many interface types. For example, the tool itself provides Dom interfaces and supports DLL calls. net Library function call, supports windows
API call: supports third-party Dom Control calls.
2. winrunner:
It is known as an enterprise-level automation tool. It is difficult to use and expensive to use the script language. I have never understood it because it does not seem to support version updates.
3. Rational Robot
It is also known as an enterprise-level automated testing tool, which can be used by companies related to IBM and is very expensive. I have never understood it because of the large installation file and the need to crack it.
4. silktest:
This is also a relatively well-known tool, but I still have never understood it. For commercial tools, the most important thing is that there are few companies to use because they have a large footprint and need to solve other problems, so I only used qtp, and I have never understood any other.
Open-source tools:
1. uiautomation:
This is the UI automation framework provided by Microsoft. Of course, its original intention is not only for automated testing. Its task is to call windows UI controls for more development or applications, however, it can still be used for automated testing, because Microsoft had similar tools before, and this is a re-designed UI operation framework, the objective is to be compatible with the UI automation operations supported for Windows operating systems [XP, Vista, server2003], and the natural support for WPF. Of course, its design is different from that of common automation tools. For example, the methods supported by the control are not bound to the control object itself, and no special mouse/Keyboard Events are provided, however, it provides Event Response listening for specific control objects and customization of handling methods. The workflow is like this:
A. There are multiple methods to obtain specific element objects first. Example: handle, attribute value
B. Obtain the mode of this element object. The pattern is unique in the design of this framework, achieving its flexibility and uniformity.
C. Use this mode to call specific methods and obtain attribute values.
D. Listen to specific events of a specified object and execute the specified event processing function once an event occurs.
Prerequisites: Install. Net 3.0
Document: http://msdn.microsoft.com/zh-cn/library/ms747327.aspx
2. Eft [easy Function Testing ]:
This is a DLL file encapsulated based on. net3.0's uiautomatuon. It also encapsulates some windows APIs to implement mouse and keyboard events. Therefore, this can only be called a test class library, and only supports Windows programs, and also supports testing of WPF programs supported by uiautomain.
Prerequisites:. net3.0 is installed.
Use: introduce this file, DLL related to uiautomation, and write test cases in vs Environment
: Http://www.softpedia.com/get/Programming/Other-Programming-Files/Eft.shtml
Google Code: http://code.google.com/p/eft/
3. Selenium:
This should be known to most people and is now the testing framework used by most Internet companies. Selenium only supports Web UI-level testing, but its advantages include:
A. Supports writing test scripts in multiple languages, such as Java, Python, Ruby, and Perl. It also means that many libraries are supported later.
B. Supports multiple browsers, such as IE, FF, Safari, and chrome.
C. Supports multiple platforms, such as Windows, Linux, Mac, Android, and iPhone.
D. Distributed execution is supported. A set of test cases can be distributed to different test machines at the same time, and the tasks can be refined. For example, for the liunx execution system, only use cases to be executed in Linux are allocated.
In addition, there is support for recording tools. Simply put, Web-based testing is basically the first choice, but it does not seem very good support for flash.
It is mainly divided into two versions, 1. version X is automatically implemented based on the JS driver. 2. X Re-developed the WebDriver to replace the JS driver and directly call the underlying interface of the browser to automate the implementation.
Prerequisites: If remote or RC functions are used, JRE must be installed.
: Http://seleniumhq.org/download/
4. watir [web automation testing in Ruby]
5. staf [Software
Testing automation Frame]
WebDriver
Waitn
Canoo
Webtest
Testcompele
Advennet qengine
Qarun
Testpartner
Summary:
Principles:
All test tools can be divided into Windows-based, web-based, and some special tools. However, the principles are roughly divided into these situations. After understanding these principles, if necessary, there is time, when you have the energy, you can refer to the advantages and disadvantages of existing tools to develop adaptive and targeted testing tools. The most convenient way is to integrate these existing tools properly, time and difficulty are greatly reduced.
Category summary:
Some of the functions provided are called tools, while others are called frameworks. Some provide automated functions based on their purposes, some support execution of automated cases, and some support deployment of testing environments; the tested objects are divided into web and windows, and the product development languages are divided into different languages, such. net, Java, etc.
Application Summary:
The last step is to understand and understand such tools. It is not always for fun, but for the purpose of supporting policy formulation in the future automated implementation process; for example, if a new test project needs to be automatically implemented, what should we consider? Which tool can be used as an alternative? Naturally, we need to have a preliminary understanding of commonly used automation tools and have some knowledge about other elements that affect the automation process. However, we can skip this section, here is just a selection of factors related to tools. It can be roughly divided into the following considerations:
1. Consider the types of tested products, such as B/S, C/S, Web Service, soap, SDK, or API. Filter tools that support certain functional testing.
2. Check whether recording is supported. Recording is much more efficient than development.
3. Considering the price of tools, open-source or free products are usually preferred.
4. Considering the scalability of tools, some tools may support the current business needs. However, if the requirements change in the future, is there good scalability? New Features of tested products, such as flex, flash, WPF, etc.
5. Consider the support of tools, that is, the features of later upgrades and version updates.
6. Considering the extensiveness of tools, that is, the degree of external popularity of these tools, it will be easy to recruit people in the future. If there are problems, there will be more active communities for help.
7. Considering the maturity of the tool, that is, the tool cannot be in beta version, a stable version is required, and it is estimated that there will be no major version changes in a long period of time.
8. Consider the availability of tools, that is, whether the tools provide plug-in interfaces for customizing their own basic library and identification mechanisms.
9. Consider the ease of use of tools, that is, whether powerful background support is available, such as Windows,. net, and Java class library support.
10. Consider the adaptability of the tool, that is, whether the tool is easily encapsulated and can be easily embedded or introduced into other frameworks. For example, the functional framework is introduced into the execution framework.
11. Considering the pertinence of tools, that is, if specific tools are available, they naturally have higher applicability than those comprehensive tools.
Finally, automation is a long way to go. What is really difficult to solve is the actual application and implementation. Different projects have different test requirements, scenario requirements, and environment requirements, comprehensive consideration is required. The final result is to submit a deliverable, easy-to-maintain, efficient, and stable test build, which is not accomplished simply by understanding the test tool, so there is still a long way to do it.