继上一篇commonlib的介绍,下面我们来介绍一下框架里接口测试用例的编写, 首先用例以test_xxx.py命名,当然你也可以随便命名,但是为了用例的统一管理,建议统一命名~ 之前博客也说过,接口最重要的两个参数, 接口地址的组成在初始化方法中获取,调用testdata中api_data的字典,获取字典中XXX的值,即是接口的参数,然后将接口参数传给set_url方法,拼接接口地址的头部信息,这个头部信息组成方法在上一篇博客中已经。https://blog.csdn.net/weixin_43574761/article/details/106192527 接口报文,我们直接将抓到的接口报文,放到data参数中即可,然后调用requests的post方法即可,如果你是get方法,则使用confighttp.get()即可。 下面是完整的demo,XXX自行根据实际接口替换 1:测试方法必须以test开头,是因为unittest默认寻找test开头的方法,当然,如果你想自定义,也是可以的,改一下源码里的默认值即可。不建议改哈,了解即可,无关紧要的东西。路径(我的是mac电脑)/usr/local/Cellar/python/3.7.5/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/loader.py, 至于测试用例中引用了testdata里的数据,而数据是如何组成的和调用的,下一篇博客将继续~
首先,我建议将接口按功能模块划分,每个大的功能模块,单独建一个包,这样方便用例的维护。
一 测试用例的命名
二 测试用例的组成
1:接口地址 self.url = api_data['XXX'] # 获取接口名称 confighttp.set_url(self.url) # 将接口名称传给http配置文件中
2:报文data = { "xxxxx" }
# coding=utf-8 """ 作者:vissy@zhu """ import unittest from commonlib.confighttp import ConfigHttp from testdata.api_data import api_data from testdata.common_data import common_data from commonlib.connectdb import connectdb confighttp = ConfigHttp() # @unittest.skip('该用例线下接口不通,跳过') class Test_XXXXX(unittest.TestCase): ''' xxxxxx ''' def __init__(self, *args, **kwargs): super(Test_XXXXX, self).__init__(*args) self.url = api_data['XXX'] # 获取接口名称 confighttp.set_url(self.url) # 将接口名称传给http配置文件中 def test_xxxx(self): data = { "xxxxx" } confighttp.set_data(data) self.response = confighttp.post().json() self.check_result() def check_result(self): connect = connectdb() conn = connect[0] cc = connect[1] cc.execute("SELECT * FROM user WHERE user_id=%s" % self.user_id) # 查询 result = cc.fetchall() # 获得数据库查询结果 conn.commit() conn.close() # 结果验证 self.assertEqual(self.response['responseStatus']['errorcode'], 0, '接口连接错误') self.assertEqual(self.response['basic']['name'], result[0][7], '用户名错误')
特别说明
2:check_result(self)是否需要数据库连接,自己选择,不需要的话,全部拿掉
3:结果验证,一般常用的方法有:
assertEqual,判断两个参数值是否相等 assertLessEqual,判断第一个参数值是否小于等于第二个参数值 assertIn,判断第一个参数是否存在于第二个参数中
4:接口的返回的数据验证由你根据实际接口来判断,你可以验证多条,也可以验证一条
5:如果同一个接口,需要多条测试用例验证,你可以在同一个测试类下面,定义多个方法来,比如:def test_a(self): def test_aa(self):,每个方法中,输入不同的请求报文即可。
6:如果某个用例需要跳过,那么在测试类或测试方法上面加上,这样在执行用例的时候,该接口下的用例,会直接跳过。@unittest.skip('该用例线下接口不通,跳过')
大家如有任何问题,可以加我的微信:zx1187463903,拉你进软测的微信群,一起学习讨论。
如果该篇博客,对你有帮助,开心的同时请美女小编喝杯咖啡也是极好的呀。-_-
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算