#!/usr/bin/env python
# -*- coding:utf-8 -*-
#====#====#====#====
#Author:
#CreatDate:
#Version:
#====#====#====#====
'''
1.导包,unittest是自带的框架,不需要安装
2.创建一个单元测试类(其实就是类,只不过他继承了单元测试框架单元测试用例的类)
3.执行
'''
import unittest
import requests
'''
1.setUpClass:给当前单元测试类的所有的用例进行初始化的,是类方法
2.tearDownClass:给当前单元测试类的所有的用例进行资源释放,是类方法
3.setUp():主要是进行测试用例的资源初始化,测试用例的前提条件写在这
4.test_xxx():测试用例,要把测试用例的步骤写在这个方法中,注意要test开头,是规定
5.tearDown():主要是进行测试用例的资源释放的
'''
#定义了一个单元测试类
class unitMath(unittest.TestCase):
#所有测试用例的资源初始化
@classmethod
def setUpClass(cls):
print("我是setUpClass")
#所有测试用例的资源释放
@classmethod
def tearDownClass(cls):
print("我是tearDownClass")
#测试用例的初始化
def setUp(self):
print("我是setUp方法")
with open('test_data.txt', 'r', encoding='utf8') as f2:
mylist = f2.read().splitlines()
print(mylist)
self.mm=mylist
#测试用例,函数名必须是test开头
def test_add_1(self):
print("第一个接口")
url=self.mm[0]
print(url)
res = requests.get(url)
print("本次响应的状态码是:", res.status_code); # 状态码
print("本次响应的所有文本:", res.text);
a=200
e=res.status_code
#添加断言
self.assertEqual(a, e, "预期结果和实际不符")
#测试用例,函数名必须是test开头
def test_add_2(self):
print("第二个接口")
s=','
str1=self.mm[1]
url=str1.split(s)[0]
name = str1.split(s)[1]
passwd = str1.split(s)[2]
email = str1.split(s)[3]
print(url)
print(name)
print(passwd)
print(email)
data={"name":name,"passwd":passwd,"email":email}
res = requests.get(url,params=data)
print("本次响应的状态码是:", res.status_code); # 状态码
print("本次响应的所有文本:", res.text);
a=200
e=res.status_code
#添加断言
self.assertEqual(a, e, "预期结果和实际不符")
def test_add_3(self):
print("第三个接口")
s = ','
str1 = self.mm[2]
url = str1.split(s)[0]
name = str1.split(s)[1]
passwd = str1.split(s)[2]
data={"name":name,"passwd":passwd}
res = requests.post(url,params=data)
print("本次响应的状态码是:", res.status_code); # 状态码
print("本次响应的所有文本:", res.text);
a=200
e=res.status_code
#添加断言
self.assertEqual(a, e, "预期结果和实际不符")
def test_add_4(self):
print("第四个接口")
s = ','
str1 = self.mm[3]
url = str1.split(s)[0]
name = str1.split(s)[1]
print(url)
print(name)
data={"name":name}
#json方式传输数据
res = requests.post(url,json=data)
print("本次响应的状态码是:", res.status_code); # 状态码
print("本次响应的所有文本:", res.text);
a=200
e=res.status_code
#添加断言
self.assertEqual(a, e, "预期结果和实际不符")
#释放测试用例资源
def tearDown(self):
print("我是tearDown释放资源")
if __name__=="__main__":
unittest.main()
#运行时,鼠标放到这里运行,才会运行所有的用例