-
name: G广州研发中心
parentid: 1 #第一次用例的数据正常
expect: 60008 #对请求结果进行断言
- name: ""
parentid: 1 #第二次用例的数据name为空
expect: 40058 #对请求结果进行断言
- name: F广州研发中心
parentid: #第三次用例的数据parentid为空
expect: 60004 #对请求结果进行断言
这里存放的我们执行部门创建用例的三个测试用例。
其中expect为这个用例执行的返回结果errcode做了一个断言,第一个用例是正常的数据,但是它已经在我们的部门列表中存在存在了,所以我们通过后来的用例执行可以知道60008表示该部门已存在,用例二是40058是部门名字为空,用例三是parentid为空错误码是60004;因为name跟parentid是必填字段不能为空。
import yaml
def read_yaml(path):
with open(path, "r", encoding="utf-8") as f:
data = yaml.safe_load(f)
return data
这个文件就是来读demo.yaml测试数据文件的。
import pytest
import requests
from utils import read_yaml
import yaml
class TestDemo:
#创建部门时要先获取一个token
def setup_class(self):
ID = "ww71bb4160935cc48d"#企业ID
SECRET = "Px17uiWMpszjPNjVMD-zMG14PRnK1ng2LrfbwL--JAg"#企业密钥
url = f" https://qyapi.weixin.qq.com/cgi-bin/gettoken"#获取token的接口地址
#把参数维护在字典中
param = {
"corpid": ID,
"corpsecret": SECRET
}
# 请求方式和请求地址
r = requests.request("get", url, params=param)#用过param参数把维护在字典中的请求参数传到里面
self.token = r.json()["access_token"]
#测试用例
#通过读取yaml文件来获取测试数据
#用数据驱动来获取测试数据from utils import read_yaml
@pytest.mark.parametrize("case", read_yaml("demo.yaml"))
def test_01(self, case):
#创建部门为例
url = "https://qyapi.weixin.qq.com/cgi-bin/department/create"
#access_token维护到字典中
param = {
"access_token": self.token
}
data = {
"name": case["name"],
"parentid": case["parentid"]
}
r = requests.request("post", url, params=param,json=data)
assert r.json()["errcode"] == case["expect"]
if __name__ == '__main__':
pytest.main()
#创建部门时要先获取一个token
def setup_class(self):
ID = "ww71bb4160935cc48d"#企业ID
SECRET = "Px17uiWMpszjPNjVMD-zMG14PRnK1ng2LrfbwL--JAg"#企业密钥
url = f" https://qyapi.weixin.qq.com/cgi-bin/gettoken"#获取token的接口地址
#把参数维护在字典中
param = {
"corpid": ID,
"corpsecret": SECRET
}
# 请求方式和请求地址
r = requests.request("get", url, params=param)#用过param参数把维护在字典中的请求参数传到里面
self.token = r.json()["access_token"]
#测试用例
#通过读取yaml文件来获取测试数据
#用数据驱动来获取测试数据from utils import read_yaml
@pytest.mark.parametrize("case", read_yaml("demo.yaml"))
def test_01(self, case):
#创建部门为例
url = "https://qyapi.weixin.qq.com/cgi-bin/department/create"
#access_token维护到字典中
param = {
"access_token": self.token
}
data = {
"name": case["name"],
"parentid": case["parentid"]
}
r = requests.request("post", url, params=param,json=data)
assert r.json()["errcode"] == case["expect"]
if __name__ == '__main__':
pytest.main()
import pytest
if __name__ == '__main__':
pytest.main()
-
name: G广州研发中心
parentid: 1 #第一次用例的数据正常
expect: 60008 #对请求结果进行断言
- name: 12345
parentid: 1 #第二次用例的数据name为空
expect: 40058 #对请求结果进行断言
- name: F广州研发中心
parentid: 1 #第三次用例的数据parentid为空
expect: 60004 #对请求结果进行断言