From functional testing to advanced automated testing, I stayed up for 7 days to sort out this 3000-word super-complete study guide [with network disk resources]

 

Most test engineers start from functional testing. They are busy at work and spend every day learning and learning about various business requirements. After many years, they find that they are still just a functional test engineer.


With the development of the mobile Internet and the overall improvement of the capabilities of practitioners, the requirements for the capabilities required for software testing are getting higher and higher. Opening the recruitment website, the market demand for automated testing engineers is also increasing, and the salary is also significantly higher than that of functional testing. personnel. First-tier cities start at 15k, and 90% of the recruitment will have the following one. Familiar with at least one programming language, XX years experience in automated testing . Therefore, more and more test engineers are beginning to be confused. Whether they are passive or active, this era requires us to keep learning to maintain our competitiveness.

Internet dividends are getting less and less. Your technology and ability determine your value in the company and also determine your advantages in future career choices. Learning automation is a path you have to choose.


At the beginning of my career, like most testers, I started with pure functional interface testing. At that time, I was doing testing in an e-commerce company for a period of time. After being familiar with the business process of the product and proficient in testing the workflow specifications, the efficiency increased, the work was easier, and I got better opportunities to develop. Later, I advanced to automated testing, and then to test development . Unknowingly, I have 6 years of test development experience , and my monthly salary has also exceeded the threshold of 30k . I have stayed in the Meituan test development framework team and built the Meituan platuo test framework. , thrift testing framework, automated testing platform, which also made me familiar with python3, java, vue, and successively built automated testing frameworks in many companies from 0 to 1 to ensure the quality of over 100 million traffic services.


Therefore, many people will start to understand and learn automated testing. However, here again a problem arises. When many people come into contact with automated testing for the first time, they often don't know how to start, what the learning path should be, etc. become the first difficulty ahead.
Today I will share with you the learning route of automated testing, hoping to help beginners.

1. To do automated testing, you must know a language:
The first step: learn python first ------- If python is not good enough, don't talk about automation.
If you only learn Robot Framwork and do automation through this, don’t think that you don’t need to learn Selenium and python, because the keywords in Robot Framework may not be enough to meet your needs, then we need to customize keywords, which is necessary at this time You have to write it yourself through python+selenium.

 Now I also found a lot of test friends, made a technology sharing exchange group, and shared a lot of video tutorials and technical documents we collected. If you don’t want to experience the feeling of not being able to find resources, no one answering questions, and giving up after a few days of self-study, you can join us to communicate. And there are many technical masters who have made certain achievements in automation and performance, sharing their experience, and will also share many live lectures and technical salons, which can be learned for free! Focus! Open source! ! ! Click on the small card at the end of the article to enter the group

 2. Master some front-end knowledge:
As an automated test siege lion, you always need to do a lot of element positioning, so for element positioning, we urgently need to learn some basic knowledge of the front-end.

 

3. Database learning:
Database is what every practitioner in this industry should learn. Whether it is front-end, back-end, or testing, project managers, product managers, and operation and maintenance personnel, they all need to be very familiar with database-related operations. As a For testing, you should be more familiar with commands such as adding, deleting, modifying and checking the database.

 

I also hope that you, who want to learn by yourself, can avoid some detours through my sharing , and can form your own system and apply it to practice . Of course, I sincerely hope that you will get promoted and raise your salary. Perhaps this is the most practical thing.


If you have similar confusion, then the video resources and documents I compiled will be your good teachers and helpful friends, and may bring you some practical help and breakthroughs.

 These materials are all placed in my qq technical exchange group (technical exchange and resource sharing). Click the small card at the end of the article to enter the group for free.

Fourth, the next step is to learn the content of automated testing


Automated composition:  automated testing is widely used in the current market, and the mainstream includes interface automated testing and UI automated testing. On this basis, coupled with continuous integration , fully automated testing can be achieved.


Next, I will give you a detailed introduction to automation according to the three main components of automation:
1. Interface automation testing
2. UI automation testing
3. Continuous integration

1. Interface automated testing


At present, most of the projects on the market are projects with front and rear ends separated, resulting in a large number of interfaces. The interface automation test is mainly to test the interface. So, how should we conduct interface automation testing? These knowledge points and tools here must be mastered.


1.1. HTTP and HTTPS protocols  In the interface test of the main process, a large number of interfaces are implemented based on the HTTP protocol, and data security is guaranteed by the HTTPS protocol, so the HTTP and HTTPS protocols must be mastered.

1.2. Interface documents  In actual work, the information carrier of the interface is not only the code, but also the interface document (provided by the developer). Understanding the structure, content and specifications of the interface document can help us deeply participate in interface testing and interface automation testing.


1.3. Interface testing tools Jmeter and Postman  meter are interface testing tools that have emerged in recent years. Its biggest feature is that it is free and open source, and easy to learn. Jmeter official website: https://jmeter.apache.org/index.html

 The Postman tool is also very powerful. In actual project applications, almost every development will use Postman to debug interface requests. Postman main interface

 Official website document

 

1.4. Mock test  In automated testing, not all functions are suitable for automated testing. For some difficult test points, we have to use Mock technology to simulate.

  • Mock of password in login and registration interface
  • Mock payment environment
  • Mock payment password
  • Mock verification code (picture verification code, slider verification code, face recognition, SMS verification code, etc.)

1.5. Summary  After mastering these knowledge points, you can fully grasp and apply the interface automation test of the HTTP protocol; you can even conduct small-scale interface performance tests.
2. UI automation testing
The cost of UI automation testing is higher than that of interface testing. The main reason is not that the technical implementation is difficult, but because the UI is the terminal interface for docking users. It is the most frequently adjusted and most drastically changed part, so the maintenance cost high. So don't we need to do UI automation testing? On the contrary, for some large-scale projects, its functions are constantly iterative. Although the interface is being adjusted, due to the long project cycle, during the development and testing process, it is necessary to frequently use automated testing scripts for regression testing, which can improve automated testing. Utilization rate, improve work efficiency and reduce work cost. Moreover, in UI automation testing, there is a key idea called "keyword-driven" testing, which is specially used to solve the problems of UI automation test script development and maintenance. So how to learn UI automation testing?  Here, we can learn Web automation testing first, and then learn App automation testing.
2.1. Web automated testing
Selenium tools and Robot framework are recommended here. Reasons for recommendation: Selenium and Robot framework are the top ten automated testing tools in the world (without distinction between UI automation and interface automation). The most popular automated testing tools in 2019 are shown in the figure below :(Selenium tops the list)

 

2.2. Selenium  Selenium is mainly for Web automation testing. At the same time, in the mobile APP automation testing, some testing frameworks are also implemented based on Selenium. If you want to automate web testing, learning selenium is the best choice. advantage

  • Cross-platform, cross-language
  • Support multiple browsers
  • Support mobile testing
  • Many plug-ins, strong scalability

shortcoming

  • Cannot generate test report directly
  • Can't recognize moving pictures

After mastering Selenium, then master the mainstream Web automation testing. Ways to learn Selenium

  • First master manual functional testing and understand the functional business of testing
  • Then learn the three major knowledge of HTML, CSS, and JS
  • The third learning Selenium testing framework
  • Finally, learn the idea of ​​PO layered management

Mastering these knowledge points will definitely require you to spend more time and energy on your own. For these learning materials and learning tutorials, you can go to the group files of our exchange group at the end of the article to get them directly. There are also many recorded video tutorials, and the explanations of the boss are very detailed. , can help you quickly understand and master.

2.3. Robot framework  Robot Framework is a functional automation testing tool written in python language. It has good scalability, supports keyword-driven, supports simultaneous testing of multiple types of clients or interfaces, and can also perform distributed testing.

advantage

  • Keyword Driven Testing
  • can be reused
  • Easy to expand
  • Support HTML test report
  • There is a huge test library to provide support (support web, mobile phone, windows client, database, HTTP test, etc.)

shortcoming

  • Common problem of interface operation: when the use case is huge, it will be very stuck
  • There are some bugs, for example, it will freeze when importing the test library

Learned the use of Robot Framework, then mastered the keyword-driven technology. Keyword-driven  method of learning Robotframework  2.4 Summary  If both Selenium and Robot framekwork can be mastered, then whether it is mainstream Web automation testing or other UI automation testing, they can have their own experience and occupy a market share A seat.
3. App automated testing
3.1. Which tool should I choose?  Let's first look at a set of data (mainstream):

 Supported function data (obtained by TesterHome)

 

 From the above two figures, it can be found that Appium is stronger than other tools in terms of market utilization and functions. Moreover, Appium supports not only Android but also iOS, so here, we should choose to learn Appium to best meet the needs of the market.  3.2 , Appium learning method  official website: http://appium.io/

 

Chinese learning manual:: https://www.kancloud.cn/testerhome/appium_docs_cn/2001595

4. Continuous integration
4.1. What is continuous integration?  Let's imagine a scenario. Now a test engineer has written all the automation scripts, but this boss still needs to go to work every day and click "Start" to run the scripts, and when the development submits a new version, the automation scripts also need to be re-run. So can this automated script be run automatically, and executed automatically after each release of the development? Of course you can, this is continuous integration. To learn continuous integration, we recommend jenkins first . 4. 2. What is the continuous integration tool Jenkins?  The Jenkins tool is an open source tool written in JAVA. It is very good in terms of scalability and practicability. Many small and medium-sized companies use Jenkins for continuous integration, and some large companies also conduct secondary development on the basis of Jenkins.
4.3. How to learn Jenkins

  • Understand the concepts of CI and CD  CI: continuous integration (integrate the code written by multiple developers in the code warehouse, automatically perform unit testing, and return the results) CD: continuous delivery (automatically build, deploy, and test the integrated code , publish, and return the results of each stage)
  • To implement these processes, we need to split learning
  • integration code
  • unit test
  • build code
  • deploy code
  • test code
  • release code
  • Send test results
  • Integrate these processes using Jenkins

In order to learn continuous integration well, it is not enough to rely on Jenkins alone. We even need to go deep into architecture design, development, testing, and operation and maintenance to proceed well.
V. Summary
In fact, automated testing is a very broad technology. If you want to be proficient in other industries, you need at least 5 years of study to be proficient, proficient to a certain level, and it is not impossible to become a technical director. For testing, the work of testing is actually relatively easy, and the technical difficulty is not particularly high. Therefore, during the testing period, everyone must continue to learn and integrate continuously in order to make progress and realize their own value.

Finally, in order to facilitate self-study software testing, I specially prepared a 13G super-practical dry goods learning resource for you, and the content involved is very comprehensive.  Including software learning roadmap, more than 50 days of class videos, 16 surprise actual combat projects, more than 80 software testing software, 37 testing documents, 70 software testing-related questions, 40 testing experience-level articles, and thousands of tests Real question sharing, as well as the 2023 software testing interview collection, as well as various selected resumes for software testing job hunting, I hope it will be helpful to everyone...

 These are all in my qq technical exchange group (technical exchange and resource sharing). Click the small card at the end of the article to enter the group for free~

Friends who have been helped, you can like it and save it, next time I will share more comprehensive tutorial resources. It is also convenient for you to quickly find it next time.

Guess you like

Origin blog.csdn.net/qq_48811377/article/details/131938968