栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

接口自动化对封装框架

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

接口自动化对封装框架

接口测试框架的结果说明
    - API 用于封装被测系统的接力
    - TestCase  讲一个或者多个接口封装程测试用例,并使用Unittest管理测试用例,TestCase 可以调用数据库进行数据的校验
    - 为了方便维护测试数据,可以把测试脚本和数据分离开
    - 通过UniitTest断言接口返回的数据,并生成测试报告

 

框架目录结构

api Testframework   项目名称
    -- api  package: 定义封装成被测系统的接口
    -- scrip package: 定义测试用例脚本
    -- data dir: 存放测试数据
    -- report dir: 存放生成的测试报告
    -- lib pakeage: 存放第三方的文件
    -- app.py 定义的项目的配置信息
    -- utils.py 定义工具类
    -- run_suite.py  执行测试套件的入口

封装TPShop登录接口案例

按照功能模块定义封装被测试系统的接口,方便测试脚本的调用,并且能够

迭代代码的复用,对登录功能的相关接口进行封装

class LoginAPI(object):
    # 初始化
    def __init__(self):
        self.verify_code_url = 'xxx'
        self.login_url = 'yyyy'
​
    # 登录过程
    # 1.获取验证码
    # 2.填写必要数据:用户名,密码,验证码
    # 3.点击登录按钮
​
    def get_login_verify_code(self,session):
        return session.get(self.verify_code_url)
​
    def login(self,session,username,password,verify_code):
        data = {
            'username':username,
            'password':password,
            'verify_code':verify_code
        }
        return session.post(url=self.login_url,data=data)
​

登录测试用例

将api 模块中的一个或者多个接口封装成一个测试用例,并使用测试框架

UnitTest管理测试用例,定义登录功能的测试用例

import unittest
from api.login import LoginAPI
from requests import Session
​
class Login_Test(unittest.TestCase):
​
    @classmethod
    def setUpClass(cls) -> None:
        cls.login_api = LoginAPI()
​
    def setUp(self) -> None:
        self.session = Session()
​
    def tearDown(self) -> None:
        self.session.close()
​
    def test_login_success(self):
        # 请求验证码
        response = self.login_api.get_login_verify_code(self.session)
        self.assertIn("image",response.headers.get('Content-Type'))
​
        # 验证码识别 略 8888
​
        # 调用登录方法,发送请求,获取响应数据
        res = self.login_api.login(self.session,'13800000002','123456','8888')
        res = res.json()
        # 断言
        self.assertEqual(200,res.status_code)
        self.assertEqual(1,res.get('status'))
        self.assertEqual('登录成功',res.get('msg'))
​

集成测试报告

使用HTMLTestRunner生成HTML格式的测试报告

注意: 需要将HTMLTestRunner.py 工具放置在lib中

import unittest
from HTMLTestRunner import HTMLTestRunner
from scripts import Test_login
​
suite = unittest.TestSuite()
suite.addTest(Test_login.Login_Test('test_login_success'))
f = open('./report/report.html','wb')
runner = HTMLTestRunner(stream=f,title='ojbk',description='黑娃')
runner.run(suite)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/316120.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号