一、测试方法和断言
在写测试方法和断言之前,你需要了解以下内容: 接口url:url=‘你的接口url’ 请求头:headers = {‘content-type’: “application/json”} response:你需要知道响应是什么样的结构,才方便自己去写断言!!! **注意:**一个测试类可以有多个测试方法;测试方法名称需要以 test_ 开头! 项目下新建一个文件case专门存放我们的测试类和测试方法
1、测试方法和断言
用例如下:
idparameterexceptdescriptionflag1{“user”:“test1”,“password”:“1234”}{“erro”:“2001”,“data”:[],“msg”:“用户名不存在”}用户不存在02{“user”:“test”,“password”:“1234”}{“erro”:“0”,“data”:[“1”,“3”,“2”,“5”],“msg”:“登录成功”}用户名密码正确0接下来,上代码:
import json
import unittest
import requests
from until.get_case import gettestcase
url = '你的接口url'
headers = {'content-type': "application/json"}
class login_test(unittest.TestCase):
@unittest.skip("暂不执行此条用例")
def test_case01(self):
'''测试场景:用户名不存在'''
self.id = 1
#gettestcase方法就是文档(一)我们写的读取用例的方法
self.payload = gettestcase(self.id)[1]
self.expect = gettestcase(self.id)[2]
response = requests.post(url,self.payload,headers)
self.result = response.text
self.assertEqual(self.expect,self.result,msg="请求参数:%s,\n预期结果:%s,\n实际结果:%s"%(self.payload,self.expect,self.result))
def test_case02(self):
'''测试场景:用户名密码正确'''
self.id = 2
self.payload = gettestcase(self.id)[1]
self.expect = gettestcase(self.id)[2]
response = requests.post(url,self.payload,headers)
self.result = response.text
self.assertEqual(self.expect,self.result,msg="请求参数:%s,\n预期结果:%s,\n实际结果:%s"%(self.payload,self.expect,self.result))
以上测试用例执行时,我们发现case2执行的时候,每次的响应数据中的data顺序不一致,这样会导致断言失败,所以我们可以把data取出来排序后再做断言。(如果你想忽略哪条case时,可以在测试方法前增加@unittest.skip()代表跳过该case)
2、排序组装json
我们可以新建一个until文件,专门放我们的工具方法:
#list排序
def list_sort(list):
for i in range(len(list)):
for j in range(len(list) - i):
if list[len(list) - j - 1] < list[len(list) - j - 2]:
list[len(list) - j - 1], list[len(list) - j - 2] = list[len(list) - j - 2], list[len(list) - j - 1]
else:
continue
return list
data排序好了,我们把它重新组装到json中:
#data排序重新构造str
def creat_sortob(str):
dict = json.loads(str)
data = dict["data"]
data_sort = list_sort(data )
dict["data"] = data_sort
str_new =json.dumps(dict)
return str_new
3、排序后再断言
现在我们排序后,再断言就可以了:
import unittest
import requests
from until.get_case import gettestcase
from until.list_sort import creat_sortob
class devs_appinstall(unittest.TestCase):
def test_case01(self):
'''测试场景:用户名不存在'''
self.id = 1
#gettestcase方法就是文档(一)我们写的读取用例的方法
self.payload = gettestcase(self.id)[1]
self.expect = gettestcase(self.id)[2]
response = requests.post(url,self.payload,headers)
self.result = response.text
self.assertEqual(self.expect,self.result,msg="请求参数:%s,\n预期结果:%s,\n实际结果:%s"%(self.payload,self.expect,self.result))
def test_case02(self):
'''测试场景:用户名密码正确(返回结果是数组且每次返回顺序不固定时需要排序后断言)'''
self.id = 2
self.payload = gettestcase(self.id)[1]
self.expect = gettestcase(self.id)[2]
self.expect_new = creat_sortob(self.expect)
response = requests.post(url, self.payload, headers)
self.result = response.text
self.result_new = creat_sortob(self.result)
self.assertEqual( self.expect_new,self.result_new,msg="请求参数:%s,\n预期结果:%s,\n实际结果:%s"%(self.payload,self.expect_new,self.result_new))
好啦~以上就是测试方法和断言,这是我们的第二步哦,接下来我们要开始执行测试方法和断言了。有问题欢迎评论区留言讨论,我也是测试小白一枚呢,希望和大家共同进步。
精彩文章
发表评论