当前位置:网站首页>How to build an interface automation testing framework?
How to build an interface automation testing framework?
2022-07-06 10:11:00 【Software testing wood wood】
Why do it ( automation ) The interface test ?
1、 Due to the increasing complexity of various systems , As a result, the cost of traditional test methods increases and the test efficiency decreases significantly , Interface testing is relative to UI The test is more stable , And it is relatively easy to realize automatic continuous integration , It can reduce the time cost of manual regression testing , Shorten the test cycle .
2、 Interface testing can be involved in project development earlier , Generally, as long as the interface is defined , You can write code . and A functional test It can only be carried out after the system provides a measurable interface .
3、 be relative to UI test ( Some test environments are troublesome ) Come on , Interface testing can cover the underlying code logic more simply and comprehensively , To discover some hidden bug.
4、 In terms of security , The front and back frames of most systems are now separated , Only relying on the front end for restriction can no longer meet the security requirements of the system , Need back-end synchronization for control , Therefore, the test also needs to be verified from the interface level .
5. More and more teams begin to receive DevOps The high degree of synergy advocated , Research and development 、 test 、 Integrated thinking of operation and maintenance and delivery , Put forward higher requirements for test efficiency .
Interface testing principle
Simulate the client to send a request to the server , After receiving, the server processes and returns a reply to the client , The process of the client receiving the reply again .
Test range
· Business function ( Including normal 、 Whether the exception scenario is implemented )
· Business rules ( Is the coverage comprehensive )
· Parameter validation ( The border 、 Whether the business rules meet the requirements )
· Abnormal scenario ( Repeated submission 、 Concurrent commit 、 Business interruption 、 Multi machine environment 、 big data Quantity test )
· Performance testing ( response time 、 throughput 、 Concurrency number 、 Resource requirements )
· Security testing ( Authority verification 、SQL Injection, etc. )
One 、 Automated testing framework Planning ideas
1. Choice language
· python
· java
Choose which one you are good at , recommend python
2. Programming tool selection
· pycharm
· vscode
Choose which one you are good at ?
3. Test framework selection
· unittest ---python Built in test framework
· pytest ---unittest Upgraded version , recommend
· httprunner
· rf frame --- keyword
4. Report visual scheme selection
· htmltestrunner
· beautifulreport
· allure
5. Continuous integration solution
· jenkins
6. Warehouse server selection
· github --- Server is abroad
· gitlab
· gitee
7. Selection of test management tools
· ZenTao
· jira
There are generally two ways to build an interface automation test framework :
1. Tool based
for example :Postman+Newman+Jenkins+Git/svn Jmeter+Ant+Jenkins+Git/svn
2. Code based
for example :Python+Requests+Pytest+Allure
Personal advice : If it's a learning stage , Choose a code based pattern , Through their own step-by-step planning of the project 、 Write code , Can better understand the implementation principle of interface automation , It will be easier to learn some tools later .
What I choose here is : Python+pycharm+pytest+allure+gitlab+jira
After planning the scheme, we can create our project code project ( Can be written with The test case parallel , The format of test cases needs to be agreed in advance , Facilitate subsequent code design ).
Two 、 Project code engineering construction ideas
Principles of designing the framework :
· Encapsulate base class methods
For some more general methods , Can be encapsulated , Like send a request 、 increase 、 Delete 、 Change 、 check .
· High cohesion and low coupling
Each module can complete its own functions as independently as possible , It doesn't depend on the code outside the module .
The complexity of the interface between modules shall be as low as possible , For example, minimize calls between methods within a class , Otherwise, a change in one method will affect another method that calls it .
· Script separation
Business code 、 The test data should be separated from each other 、 Flexible call . The idea is similar to a first acquaintance PO Mode and in Selenium In simple practice PO Design patterns . There should be no specific data in the code 、 To configure . Instead, call the corresponding data file .
3、 ... and 、 A relatively perfect project code engineering structure :
- common # Package file , Common module , Store some general methods
- baseapi.py
- class BaseApi()# Base class
- Method 1: Send a request
- Method 2: increase
- Method 3: Delete
- Method 4: Change
- Method 5: check
- libs # Package file , Store business layer code
- login.py # Login module
- class Login(BaseApi) # Inherit from the base class BaseApi
- Method 1: Send login request
- Method 2: Send a logout request
- logout.py # Log out of the module
- class Logout(BaseApi)
- configs # Package file , Storage configuration
- config.py
- HOST='xxx'# Used to switch the test environment
- url='xxx'
- datas # Folder , Storing data / The test case
- xxx.xls
- xxx.yaml
- testCase # Package file , Store test case code , Note compliance pytest Naming specification
- test_login.py
- class Test_login
- Method 1:test_login01
- Method 2:test_login02
- test_logout.py
- - class Test_logout
- Method 1:test_logout01
- Method 2:test_logout02
- outFiles # Folder , The output file
- logs # Deposit log file
- report # Storage Report
- screenShot # Save screenshots
- tools # Package file , Tool class
- handle_data.py
- handle_excel.py
- handle_path.py
- handle_yaml.py
- docs # Folder , Store description documents
- Code specification .doc
- The requirements document .doc
Frame building :

Four 、 Follow up code writing ideas :
The coding idea after the framework is written , Generally speaking
1. Base class encapsulation , Put some common methods, such as sending requests 、 increase 、 Delete 、 Change 、 Check and put it in our base class .
2. Write the interface code of the business layer .
3. Write test case code , If you find something missing in the process, write what method , Think about whether this method should be placed in a specific business or a base class or tools Inside , This process is a process of continuous code optimization . Until our use case code is written .
such as , In the process of writing test case code, you need to read yaml file , It's just tools Add one inside. get_yml_data Methods
Another example , Two business modules need to be associated , need A Method returns an object to B Method use , Then optimize A Method , Give the return value .
Another example is , Some key nodes need screenshots , Then go to the method of supplementing the screenshot .
边栏推荐
- The replay block of canoe still needs to be combined with CAPL script to make it clear
- 15 医疗挂号系统_【预约挂号】
- MySQL实战优化高手09 生产经验:如何为生产环境中的数据库部署监控系统?
- Inject common SQL statement collation
- [flask] crud addition and query operation of data
- oracle sys_ Context() function
- CDC: the outbreak of Listeria monocytogenes in the United States is related to ice cream products
- 安装OpenCV时遇到的几种错误
- C杂讲 浅拷贝 与 深拷贝
- 17 医疗挂号系统_【微信支付】
猜你喜欢

The programming ranking list came out in February. Is the result as you expected?

Programmation défensive en langage C dans le développement intégré

Regular expressions are actually very simple

Release of the sample chapter of "uncover the secrets of asp.net core 6 framework" [200 pages /5 chapters]

MySQL实战优化高手11 从数据的增删改开始讲起,回顾一下Buffer Pool在数据库里的地位

Implement context manager through with
![[after reading the series] how to realize app automation without programming (automatically start Kwai APP)](/img/e1/bad9cfa70d3c533cfaddeee40b96f1.jpg)
[after reading the series] how to realize app automation without programming (automatically start Kwai APP)

Use xtrabackup for MySQL database physical backup

C杂讲 双向循环链表
![[after reading the series of must know] one of how to realize app automation without programming (preparation)](/img/eb/e789d88f10787c302f9457ca7ca2cc.jpg)
[after reading the series of must know] one of how to realize app automation without programming (preparation)
随机推荐
Installation de la pagode et déploiement du projet flask
If someone asks you about the consistency of database cache, send this article directly to him
[flask] crud addition and query operation of data
VH6501学习系列文章
Download address of canoe, download and activation of can demo 16, and appendix of all canoe software versions
Delayed note learning
四川云教和双师模式
在CANoe中通过Panel面板控制Test Module 运行(初级)
If a university wants to choose to study automation, what books can it read in advance?
17 医疗挂号系统_【微信支付】
MySQL实战优化高手02 为了执行SQL语句,你知道MySQL用了什么样的架构设计吗?
[after reading the series] how to realize app automation without programming (automatically start Kwai APP)
西南大学:胡航-关于学习行为和学习效果分析
MySQL实战优化高手10 生产经验:如何为数据库的监控系统部署可视化报表系统?
Target detection -- yolov2 paper intensive reading
Contest3145 - the 37th game of 2021 freshman individual training match_ B: Password
MySQL实战优化高手09 生产经验:如何为生产环境中的数据库部署监控系统?
MySQL ERROR 1040: Too many connections
在CANoe中通過Panel面板控制Test Module 運行(初級)
Learning SCM is of great help to society