当前位置:网站首页>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 )
边栏推荐
- What are the conditions for applying for NPDP?
- H3C VXLAN配置
- 【SVN】SVN是什么?怎么使用?
- Port occupation troubleshooting
- Screen automatically generates database documents
- How to use Arthas to view class variable values
- Serial port experiment - simple data sending and receiving
- External interrupt to realize key experiment
- [chaosblade: node CPU load, node network delay, node network packet loss, node domain name access exception]
- Simulation volume leetcode [general] 1705 The maximum number of apples to eat
猜你喜欢

PMP Exam details after the release of the new exam outline

Postman interface test (II. Set global variables \ sets)

C语言指针(习题篇)

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

MySQL master-slave delay solution

NVIC中断优先级管理

On December 8th, 2020, the memory of marketing MRC application suddenly increased, resulting in system oom

Locust performance test 2 (interface request)

Interview question: general layout and wiring principles of high-speed PCB

【istio简介、架构、组件】
随机推荐
Storage of data in memory
模拟卷Leetcode【普通】1567. 乘积为正数的最长子数组长度
Regularly modify the system time of the computer
PMP examination experience sharing
2022-07-06 unity core 9 - 3D animation
寄存器地址名映射
STM32的时钟系统
Led analog and digital dimming
When inputting an expression in the input box, an error is reported: incorrect string value:'\xf0\x9f... ' for column 'XXX' at row 1
JVM garbage collection detailed learning notes (II)
PMP experience learning and sharing process
[SVN] what is SVN? How do you use it?
LED模拟与数字调光
Original collection of hardware bear (updated on May 2022)
MySql数据库-索引-学习笔记
【ChaosBlade:根据标签删除POD、Pod 域名访问异常场景、Pod 文件系统 I/O 故障场景】
2022-06-30 unity core 8 - model import
Locust performance test 5 (analysis)
Several common database connection methods
UnityShader入门精要个人总结--基础篇(一)