python自动化测试-接口测试
前面我们讲了如何自动去在页面上进行测试,那么接下来我们新建一个项目,来对接口进行测试,项目目录如下:
config包:用来配置接口的前缀地址;
data文件:用来存放case文件(测试用例yml)
login包:登录接口处理
tools包:读取yml文件进行处理
test_case包:主入口,进行调用方法,测试接口
代码如下:
- config.index:
HOST = "https://************"; #请求地址
- login.index:
from config.index import HOST;
import requests;
import hashlib;
# md5加密方法处理。hashlib模块
def get_md5(psw):
md5 = hashlib.md5();
md5.update(psw.encode("utf-8"));
return md5.hexdigest();
# 登录接口模块封装
class Login:
def login(self,params):
# 请求接口地址
url = f"{HOST}/login";
# 发起请求
resq = requests.post(url,json=params);
# 返回响应结果
return resq.json()
if(__name__ == "__main__"):
res = Login().login({"username":"superadmin","password":"111111","type":2});
print(res)
- data下的loginCase.yml:
# 注释 登录接口
# 注释 登录接口
-
url: /base/system/user/login
method: POST
- #test_01用例
detail: 账号与密码都正确
data: #请求体
username: "superadmin"
password: "111111"
type: 2
resp:
code: 200
message: "操作成功!"
- tools.yamlContpl:
#读取yml文件需要安装 pyYaml库
import yaml;
def get_yaml_data(fileDir):
# 打开文件
fo = open(fileDir,"r",encoding="utf-8");
# 读取其中全部内容
res = yaml.load(fo,Loader=yaml.FullLoader);
fo.close();
return res
if(__name__ == "__main__"):
res = get_yaml_data("../data/loginCase.yml");
print(res)
- test_case.test_login:
from login.index import Login;
from tools.yamlContpl import get_yaml_data;
# 获取用例数据
res = get_yaml_data("../data/loginCase.yml")[1];
# 调用方法 得到响应数据
params = Login().login(res['data']);
# 验证测试用例 拿想要的结果和返回的结果进行对比
if(params["message"] == res['resp']['message']):
print("和预期相符,测试通过");
else:
print("和预期不符,测试未通过");
上面的是我们手写的一个小的测试项目,在正常开发过程中,我们如果这样去开发,首先效率会低很多,而且还需要生成一定的报告,那么咱们就需要引入框架来帮我们去做这些事
需要批量运行用例:pytest
生成报表:allure+log
持续集成:jenkins+gitlab
布置持续环境:docker
下一章自动化03