当前位置:网站首页>Interface test API case, data and interface separation
Interface test API case, data and interface separation
2022-07-07 09:16:00 【Is winter coming】
Purpose : Complete interface automation test , The most important one is use cases 、 data 、 Separation of interfaces
Now simulate the test of a login interface ,
Original request :
import pytest,json,requests
def test_login():
url = "https://blog.csdn.net/"
payload = json.dumps({
"tel": "123456",
"password": "123456"
})
headers = {
'Content-Type': 'application/json'
}
response = requests.request(method="POST", url=url,headers=headers ,data=payload)
print(response.json)problem :
Multiple use cases for this interface , You have to write many times , The code repetition rate is too high
Method :
Use cases and interfaces 、 Data separation
Interface file :get_token.py
import json,requests
# api Each method in represents the request method of an interface
class GET_Token():
def get_login(self):
url = "https://blog.csdn.net/"
payload = json.dumps({
"tel": "123456",
"password": "123456"
})
headers = {
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
return response.json()
if __name__ == '__main__':
t = GET_Token()
t.get_login()Use case files :test_demo.py
# testcase It's a test case , One method Corresponding to one case, Use cases are separated from interfaces
import pytest
from get_token import GET_Token
class Test_token():
def setup(self):
self.gettoken = GET_Token()
# Determine whether the login is successful , Compare the response value returned by the interface
def test_token(self):
print(self.gettoken.get_login())
assert self.gettoken.get_login()['code'] == 0Now the interface file is still confused , You can sort out the data format , Adopt unified format , such as JSON
After finishing get_token.py
import json,requests
# api Each method in represents the request method of an interface
class GET_Token():
def get_login(self):
# Transform the request information into a standard dictionary structure
req = {
"method": "POST",
"url": "https://blog.csdn.net/",
"headers": {
'Content-Type': 'application/json'
},
"data": json.dumps({
"tel": "1234456",
"password": "1234456"
})
}
# unpacking
rs = requests.request(**req)
print(rs.text)
return rs
if __name__ == '__main__':
t = GET_Token()
t.get_login()Now use cases and interfaces 、 The data was successfully separated , If the use case or interface changes, you can directly modify the corresponding file , One use case is for multiple pieces of data , Directly prepare multiple data replacements req that will do ( Put it in the data file to read , Traverse )
边栏推荐
- Led analog and digital dimming
- Entity of cesium data visualization (Part 1)
- Locust performance test 5 (analysis)
- Port occupation troubleshooting
- Pytest installation (command line installation)
- OpenGL frame buffer
- 2020 year end summary
- C语言指针(特别篇)
- Simulation volume leetcode [general] 1567 Length of the longest subarray whose product is a positive number
- C语言指针(中篇)
猜你喜欢

How to pass the PMP Exam in a short time?

C language pointer (Part 2)

Three updates to build applications for different types of devices | 2022 i/o key review

【Istio Network CRD VirtualService、Envoyfilter】

Data association between two interfaces of postman

Cesium load vector data

外部中断实现按键实验

Locust performance test 5 (analysis)

串口实验——简单数据收发

数据在内存中的存储
随机推荐
Pytest+request+allure+excel interface automatic construction from 0 to 1 [familiar with framework structure]
C language for calculating the product of two matrices
Storage of data in memory
RuntimeError: Calculated padded input size per channel: (1 x 1). Kernel size: (5 x 5). Kernel size c
串口实验——简单数据收发
Chaosblade: introduction to chaos Engineering (I)
【ChaosBlade:根据标签删除POD、Pod 域名访问异常场景、Pod 文件系统 I/O 故障场景】
Systick tick timer
Detailed learning notes of JVM memory structure (I)
Calf problem
Postman data driven
C语言指针(习题篇)
Interview question: general layout and wiring principles of high-speed PCB
Locust performance test 2 (interface request)
5A summary: seven stages of PMP learning
Three updates to build applications for different types of devices | 2022 i/o key review
2022-07-06 Unity核心9——3D动画
JVM garbage collection detailed learning notes (II)
Unity shader beginner's Essentials (I) -- basic lighting notes
JVM 内存结构 详细学习笔记(一)