接口自动化测试框架(五)--testcase包的介绍

继上一篇commonlib的介绍,下面我们来介绍一下框架里接口测试用例的编写,
首先,我建议将接口按功能模块划分,每个大的功能模块,单独建一个包,这样方便用例的维护。
在这里插入图片描述

一 测试用例的命名

首先用例以test_xxx.py命名,当然你也可以随便命名,但是为了用例的统一管理,建议统一命名~

二 测试用例的组成

之前博客也说过,接口最重要的两个参数,
1:接口地址

        self.url = api_data['XXX']  # 获取接口名称
        confighttp.set_url(self.url)  # 将接口名称传给http配置文件中

接口地址的组成在初始化方法中获取,调用testdata中api_data的字典,获取字典中XXX的值,即是接口的参数,然后将接口参数传给set_url方法,拼接接口地址的头部信息,这个头部信息组成方法在上一篇博客中已经分享。https://blog.csdn.net/weixin_43574761/article/details/106192527
2:报文

data = {
            "xxxxx"
        }

接口报文,我们直接将抓到的接口报文,放到data参数中即可,然后调用requests的post方法即可,如果你是get方法,则使用confighttp.get()即可。

下面是完整的demo,XXX自行根据实际接口替换

# 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], '用户名错误')


特别说明

1:测试方法必须以test开头,是因为unittest默认寻找test开头的方法,当然,如果你想自定义,也是可以的,改一下源码里的默认值即可。不建议改哈,了解即可,无关紧要的东西。路径(我的是mac电脑)/usr/local/Cellar/python/3.7.5/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/loader.py,
在这里插入图片描述
2:check_result(self)是否需要数据库连接,自己选择,不需要的话,全部拿掉
3:结果验证,一般常用的方法有:
assertEqual,判断两个参数值是否相等 assertLessEqual,判断第一个参数值是否小于等于第二个参数值 assertIn,判断第一个参数是否存在于第二个参数中
4:接口的验证方式由你根据实际接口来判断,你可以验证多条,也可以验证一条
5:如果同一个接口,需要多条测试用例验证,你可以在同一个测试类下面,定义多个方法来,比如:def test_a(self): def test_aa(self):,每个方法中,输入不同的请求报文即可。
6:如果某个用例需要跳过,那么在测试类上面加上,这样在执行用例的时候,该接口下的用例,会直接跳过。

@unittest.skip('该用例线下接口不通,跳过')

至于测试用例中引用了testdata里的数据,而数据是如何组成的和调用的,下一篇博客将继续分享~
大家如有任何问题,可以加我的微信:zx1187463903,拉你进软测的微信群,一起学习讨论。
如果该篇博客,对你有帮助,开心的同时请美女小编喝杯咖啡也是极好的呀。-_-
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43574761/article/details/106376370