unitest 做接口自动化时,使用外部导入的文件做正反例测试

2022-11-18  吴水荣 

例如登录正反例,需要考虑账号不填,账号填错,密码不填,密码填错等等错误的提示
step 1:先在txt文件里写好测试用例和断言信息,然后直接修改后缀名为csv,将该文件放进项目里,例如file文件夹里

step 2: 在Utils工具类里添加读取csv文件的方法

@staticmethod
    def read_csv(self, file_dir):
        """读取csv文件"""
        item = []
        with open(file_dir, 'r', encoding="utf-8") as files:
            rFile = csv.reader(files)
            for csv_i in rFile:
                item.append(csv_i)
            item = item[1:]
            return item

step 3: 在登录接口引用该方法

import unittest
import requests
from loguru import logger
from tools.utils import Utils
class TestLogin(unittest.TestCase):
    """登录正反例"""
    def test_login(self):
        #引用上面的读取csv文件的方法,引用第一步建好的用例文件
        lists = Utils.read_csv(self, file_dir="./file/login.csv")
        for i in lists:
            url = Utils.get_base_url() + "system/pc/api/sys/user/login"
            # 登录入参的登录用户名是循环里的第一列,密码是第二列
            request_params = {
                "userName": i[0],  
                "password": i[1],
                "ip": "127.0.0.0",
                "loginName": i[0],
                "loginPassword": i[1]
            }
            request_data = requests.post(url=url, json=request_params)
            logger.info("登录接口入参:" + str(request_params))
            response_data = request_data.json()
            logger.info("登录接口出参:" + str(response_data))
            # 断言时将用例文件里的第三列数据,与返回值的msg对比,如果包含在内,则测试通过
            self.assertIn(i[2], response_data["msg"], "预期结果与实际结果一致")

step 4: 在runTest执行

87°/876 人阅读/0 条评论 发表评论

登录 后发表评论