接口测试之前要先知道一个单元测试模块,那就是unittest,这个模块由5部分组成:
TestCase:写用例的,所有用例都写在这里边
TestSuite:测试套件,收集用例
TestLoader:加载用例
TestRunner:运行用例
TestFixTure:测试准备和善后工作,分为setUp和tearDown
需求:网站的搜索图书功能,用关键字搜索图书,例如想要搜索含有”一带一路“的书。做接口测试,也需要写用例,那么这些用例都跟功能测试用例一样的,如下:
有用例了,但是还需要接口文档
上代码
import requests #这个库是接口测试必不可少的,里边包含各种请求方式和返回值
import unittest #单元测试模块,作用是写用例,运行用例
import sys
import io
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf8') #避免打印中文乱码的
class Test_api(unittest.TestCase): #继承unittest
def setUp(self):
pass
def test_search(self): #用例名称必须是test开头
'''keyword search''' #这里是用例名称,用途是批量运行用例时,能够知道这条用例是测什么的
self.url = 'http://*****/search/keywords' #接口地址
self.param = {
'keyword' : '一带一路' #请求参数,搜索有关“一带一路”的书
}
self.res = requests.get(self.url,params=self.param) #发送请求,这个不需要请求头,所以没有header
self.r = self.res.json() #把返回值转成json串
self.assertIn('一带一路',str(self.r)) #断言,判断返回值中是否包含搜索的字符串
print (self.r)
def tearDown(self):
pass
if __name__=='__main__':
suite = unittest.TestSuite() #测试套件,用于收集用例
suite.addTest(Test_api('test_search')) #添加需要执行的用例
runner = unittest.TextTestRunner(verbosity=2) #运行单条用例
runner.run(suite) #运行
运行后得到的结果如下:
以上就是一个简单的接口测试了,大家快找个接口试试吧
备注:重要的事情说三遍,测试用例名称一定要是小写test开头,小写test开头,小写test开头…