- 接口自动化的本质是自动发送请求给服务器,服务器返回结果,我们验证数据是否符合预期。
 - 我们要做的事情就是
 - 发送请求给服务器;
 
- 2.检查服务器返回的结果是否正确;
 - 现在根据这两个需求我们做的事情
 - 1.使用requests帮助发送请求给服务器
 - 2.拿到服务器的返回结果之后使用python的assert添加断言,验证结果是否符合预期结果。
 - 这两个是最核心的东西, 下面的一切操作都是围绕这连个核心。
 - 封装基础类:
 - 我们的API 主要用get 和post 请求,在封装时主要封装get 和 post 请求即可。
 - sdk.py
 - import requests
 - class Client:
 - def init(self):
self.base_url = '[http://39.107.96.138:3000/api/v1](http://39.107.96.138:3000/api/v1)'
 - def do_request(self,url:str, method:str,args,params=None, data=None,json=None, *kwargs):
url = self.base_url+url<br /> method = method.lower()<br /> if method == 'get':<br /> return requests.get(url,params,**kwargs)<br /> elif method == 'post':<br /> return requests.post(url,data=data,json=json,**kwargs) - 封装数据
 - 接口测试数据主要放在yaml文件中。
 - data.yml
 - topics1:
url: /topics
method: get
param:page: 1 limit: 1 
- topics1:
 - topics2:
url: /topics
method: get
param:page: 1 limit: 2 
- topics2:
 - 定义case
 - 请求的参数放在yml文件中维护,有多少条数据应该为多少条case。借助pytest的参数化,从文件读取数据传给参数化,实现数据驱动。
 - testcase.py
 - import
pytest
from sdk import Client
import yaml - f = open(‘data.yml’)
data = yaml.safe_load_all(f)
@pytest.mark.parametrize(‘case’,next(data))
def test_case(case):for k, v in case.items():<br /> client = Client()<br /> res = client.do_request(url=v['url'], method=v['method'], params=v['param'])<br /> print(res.status_code, res.content) - 运行
 - 执行pytest 运行命令
 - pytest tescase.py
 
- 可以看到自动生成2条case,执行完毕。
 - Python 习题整理
- 给定下列数组,请按照数据长度从小到大进行排序;
 
 - l = [‘zyy’,’yx’,’bbbb’,’aaa’]
 两种方式
l.sort(key=len)
l.sort(key= lambda a: len(a))
print(l)- 给定下列数据,求出A,B中共同的元素;
 
- a = [‘zhangsan’,’lisi’,’wangwu’]
b = [‘zhangsan’,’mazi’,’ergouzi’] 转换为集合之后求交集。
print( set(a) & set(b))- 执行下面代码,请问会打印出什么内容?
 
- def f(a,L=[]):
L.append(a)<br /> print(L) - f(1)
f(2)
f(3) - [1]
[1, 2]
[1, 2, 3] 
