一、测试方法和断言

在写测试方法和断言之前,你需要了解以下内容: 接口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))

好啦~以上就是测试方法和断言,这是我们的第二步哦,接下来我们要开始执行测试方法和断言了。有问题欢迎评论区留言讨论,我也是测试小白一枚呢,希望和大家共同进步。

精彩文章

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。