Python框架模型搭建
如何搭建框架,也就是如何创建包,模块,如何存放编写的代码
-- 怎么组织代码,怎么创建包,模块
-- 自动化测试用例放在哪里
-- 入口main,收集用例放在哪里
-- 测试数据,应该放在哪里
-- 测试报告放在哪里
-- 配置文件放在哪里
-- 日志文件放在哪里
-- excel操作
-- 托管提交到公司代码库(git,github,gitlab,gitee)
框架搭建步骤:
1.项目说白了就是一个目录,会放很多的文件,不是包,
所以先创建一个新的项目目录task_211012
2.建立一个收集用例的模块,run.py
3.report/目录存放所有测试报告,
使用unittestreport会自动生成report/目录,如果使用beautifulreport需要自己建立report/目录
4.data/存放所有的测试数据
5.common/存放所有的通用模块
common是通用的,其他的或多或少和项目有关系的
换名话也就是说,当你换一个项目时,common可以原封不动的复制到新项目中使用,但其他是需要修改总分内容的
6.cases/存放所有的测试用例
7.config/存放配置文件
8.log/存放日志文件
具体存放的什么代码,如下:
test_login.py(自动代测试用例,参数化)
import unittest
from login import login
from common.excel import read_excel
from ddt import ddt, data
from common.logger import log# 调用read_excel函数,读取excel文件的数据
excel_path = r'E:\lemon\task_211012\data\cases.xlsx'
login_data = read_excel(excel_path, 'Sheet1')@ddt
class TestLogin(unittest.TestCase):@data(*login_data)def test_login(self, row):# row表示每次从data这个列表中取出一个数据,{}# row代表一组测试数据,相当于for row in data:# 源码:会自动生成一个新的test_login1函数params = eval(row['data'])username = params['username']password = params['password']expected = eval(row['expected'])actual = login(username, password)try:self.assertEqual(expected, actual)except AssertionError as e:# 导入logger模块下的变量,不要导入函数log.error('用例测试失败')raise e
excel.py(读取测试用例cases.xlsx文件内容)
from openpyxl import load_workbookdef read_excel(file_name, sheet_name):wb = load_workbook(file_name)sheet = wb[sheet_name]data = list(sheet.values)titles = data[0]rows = [dict(zip(titles, row)) for row in data[1:]]return rows
logger.py(封装日志函数)
from loguru import loggerdef get_logger(file):logger.add(sink=file, encoding='utf-8')return loggerlog = get_logger(r'E:\lemon\task_211012\common\log\demo.log')
read_yaml.py(读取配置文件内容)
import yamldef read_yaml(filename):with open(filename, encoding='utf-8') as f:data = yaml.safe_load(f)return data
config.yaml(配置文件)
casename: 'test_database' server_address: 124.70.35.245 server_port: 8104 database_address: 124.70.35.245 database_port: 3306 database_name: 'EDC' username: 'admin' password: 123456
cases.xlsx(测试用例)
login.py(被测函数)
def login(username=None, password=None):if username is None or password is None:return {"code": "400", "msg": "用户名或密码为空"}if username == 'yuz' and password == '123':return {"code": "200", "msg": "登录成功"}return {"code": "300", "msg": "用户名或密码错误"}
run.py(存放收集测试用例代码)
import unittest
import unittestreportsuite = unittest.defaultTestLoader.discover('cases')
runner = unittestreport.TestRunner(suite)
runner.run()
运行run.py后会自动生成report/目录,demo.log内会存入日志信息
2021-10-15 10:25:01.946 | ERROR | test_login:test_login:27 - 用例测试失败 2021-10-15 10:25:01.948 | ERROR | test_login:test_login:27 - 用例测试失败
注意:
在test_login.py下如果调用logger.py下的get_logger函数,日志文件会多产生信息
因为在执行第二个失败测试用例时,第一次写那支笔也存在,一共有两支笔,所以打印了两次
这个问题解决方法就是,导入logger.py下的调用函数的变量
修改后日志信息是正常的
面试题:你的自动化测试框架是怎么搭建的?你的自动化测试框架包含了什么内容?
你们公司自动化测试怎么做的?
回答:
分层设计:不同的内容分开放到相应模块,好维护
每个包/模块分别处理什么问题:
-- run.py 收集所有测试用例
-- cases/存放所有的测试用例
-- report/目录存放所有测试报告
-- common/通用模块,存放excel,配置文件,日志等
解决了哪些接口自动化测试的问题:
-- 数据驱动
-- 数据库断言
-- 数据提取
-- 动态参数替换
Python框架模型搭建相关推荐
- 【Python自动化测试20】接口自动化测试框架模型搭建
文章目录 一.前言 二.框架搭建流程 2.1 项目创建 2.2 README文件 2.3 .gitignore文件 2.4 什么是测试框架? 2.5 分层设计 2.6 框架搭建 2.6.1 公用目录( ...
- 接口自动化测试之框架模型搭建
一.前言 小伙伴们大家好呀,今天笔者给大家带来了一篇关于python接口自动化测试的文章,这篇文章主要讲解Python接口自动化测试框架模型的搭建,主要介绍如何设计框架,以及基础的框架运行等,话不多说 ...
- 前几行 python_调包侠神器2.0发布,Python机器学习模型搭建只需要几行代码
萧箫 发自 凹非寺 量子位 报道 | 公众号 QbitAI Python开源机器学习建模库PyCaret,刚刚发布了2.0版本. 这款堪称「调包侠神器」的模型训练工具包,几行代码就能搞定模型编写.改进 ...
- 使用python框架Django搭建web应用
一.Django简介 1. web框架介绍 具体介绍Django之前,必须先介绍Web框架的概念. Web框架: 别人已经设定好的一个Web网站模板,你学习它的规则,然后"填空"或 ...
- 如何搭建python框架_从零开始:写一个简单的Python框架
原标题:从零开始:写一个简单的Python框架 Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 你为什么想搭建一个Web框架?我想有下面几个原因: 有一个 ...
- python利器app怎么查文献-科研人必备:一个工具搞定文献查阅、数据分析、模型搭建...
原标题:科研人必备:一个工具搞定文献查阅.数据分析.模型搭建 写论文有多难?这首诗形容得好: 进入学校先选题,踌躇满志万人敌:发现前辈都做过,满脸懵逼加惊奇. 终于找到大空白,我真是个小天才:左试右试 ...
- python django框架分析_Django框架模型简单介绍与使用分析
本文实例讲述了Django框架模型简单介绍与使用.分享给大家供大家参考,具体如下: ORM介绍 ORM Object relational mapping 对象关系映射 把面向对象中的类和数据库表一一 ...
- Python 框架 之 Django MVT 下的 M 的 模型的简单介绍和使用
Python 框架 之 Django MVT 下的 M 的 模型的简单介绍和使用 目录
- python学习第6天---django框架---模型类及数据库操作
python学习第6天---django框架---模型类及数据库操作 目录 文章目录 1.字段与选项 2.查询函数 3.查询集 4.模型类之间的关系 4.1.对应关系 4.2.关联查询 5.模型管理器 ...
最新文章
- 《未来企业效率白皮书》
- vue-:class的几种使用方式
- springmvc 组合注解
- 使用.NET Core优雅获取并展示最新疫情数据
- layui tree 加载慢_图片太多,加载慢,我用了layui里的方式,放在服务器后还是太慢!怎么解决???有没有什么优化的技巧???...
- 青书学堂计算机科学与技术,青书学堂考试 答案2019佳木斯信息计算机.doc
- iOS Crash常规跟踪方法及Bugly集成运用
- python批量创建实例_Django批量创建Model实例
- [Swift]LeetCode229. 求众数 II | Majority Element II
- Atitit.mysql oracle with as模式临时表模式 CTE 语句的使用,减少子查询的结构性 mssql sql server..
- 网络冗余备份之浮动路由
- android 自动发短信的代码,Android点击按钮时自动发送短信
- 2.5导入和混合配置 P61 Spring实战 第四版
- java之简易生成彩色二维码实践
- 数据库笔记--常见sql操作
- ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘localhost:3306‘ (10061)的解决方法。
- CA 认证过程及 https 实现方法
- Java实现hanoi塔
- ios底部栏设计规范_IOS界面设计尺寸标准规范
- 简单模拟快递单号查询页面展示