当前位置:网站首页>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 )
边栏推荐
- Reflections on the way of enterprise IT architecture transformation (Alibaba's China Taiwan strategic thought and architecture practice)
- Simulation volume leetcode [general] 1557 The minimum number of points that can reach all points
- What is the use of PMP certificate?
- [SVN] what is SVN? How do you use it?
- 2022-06-30 Unity核心8——模型导入
- Serial port experiment - simple data sending and receiving
- PMP certificate preparation experience sharing
- Personal deduction topic classification record
- Ppt template and material download website (pure dry goods, recommended Collection)
- Simulation volume leetcode [general] 1705 The maximum number of apples to eat
猜你喜欢

【istio简介、架构、组件】

Led analog and digital dimming

STM32串口寄存器库函数配置方法

Hard core sharing: a common toolkit for hardware engineers

Postman interface test (I. installation and use)

External interrupt to realize key experiment

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

2022-07-06 Unity核心9——3D动画

MySQL master-slave delay solution

Common short chain design methods
随机推荐
JVM garbage collection detailed learning notes (II)
Interpretation of MySQL optimization principle
Locust performance test 5 (analysis)
Led analog and digital dimming
RuntimeError: Calculated padded input size per channel: (1 x 1). Kernel size: (5 x 5). Kernel size c
Goldbach conjecture C language
Chaosblade: introduction to chaos Engineering (I)
MySQL common statements
Original collection of hardware bear (updated on May 2022)
Jemter operation
C语言指针(中篇)
串口實驗——簡單數據收發
Some pit avoidance guidelines for using Huawei ECS
[chaosblade: node CPU load, node network delay, node network packet loss, node domain name access exception]
2022-06-30 unity core 8 - model import
Mysql database transaction learning notes
徽商期货公司评级是多少?开户安全吗?我想开户,可以吗?
Common short chain design methods
Calf problem
Postman setting environment variables