自动化测试(python.unittest)

pip install parameterized

登录为样例

import json, unittest, requests, parameterized


# 定义一个登录的函数
def login(mobile, password):
    # 请求的URL
    url = 'http://localhost:8080/api/sys/login'
    # 请求的数据
    data = {
        'username': username,
        'password': password
    }
    headers = {
        "Content-Type": "application/json"
    }
    # json.dumps(data) 将字典转为json格式
    data_json = json.dumps(data)
    # 发起请求,headers是请求头的数据,data是请求所携带的参数。并把返回的数据转为json
    res = requests.post(url=url, data=data_json, headers=headers).json()
    return res


# 为当前接口写测试用例
class CeShi(unittest.TestCase):
    # parameterized方法 用装饰器 一次执行多个测试用例
    @parameterized.parameterized.expand(
        [("13800000001", "123456", 10000), ("13811111111", "123456", 20001), ("13800000001", "1234567", 20001)]
    )
    def test_01(self, username, password, result):
        # 获取requests请求后的数据
        res = login(username, password)
        # 断言 请求后返回的状态码与测试用例里的是否一致 不一致就断言失败
        self.assertEqual(res['code'], result)

html格式的就是HTMLTestRunner了,HTMLTestRunner是 Python 标准库的 unittest 框架的一个扩展,它可以生成一个直观清晰的 HTML 测试报告。使用的前提就是要下载 HTMLTestRunner.py,下载完后放在python的安装目录下的scripts目录下即可。 (网上有很多可以下载的,美观)

import unittest
from request_unittest.HTMLTestRunner import HTMLTestRunner
from request_unittest.test_login import CeShi

# 创建测试套件
suite = unittest.TestSuite()
# 加载测试用例
suite.addTest(unittest.makeSuite(CeShi))

with open("test_login.html", "wb")as f:
    # 创建Runner对象
    runner = HTMLTestRunner(stream=f, title="登录测试报告", description="Chrome 浏览器")
    
    # 执行测试条件并生成测试报告
    runner.run(suite)

执行这个文件就生成报告了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值