赞
踩
1.新建Django项目以及项目配置
一、新建app
python manage.py startapp app
二、settings文件配置
# 域名访问权限 ALLOWED_HOSTS = ["*"] # 数据库 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # 数据库引擎 'NAME': 'demo_database', # 数据库名,先前创建的 'USER': 'root', # 用户名,可以自己创建用户 'PASSWORD': 'demo2021', # 密码 'HOST': '127.0.0.1', # mysql服务所在的主机ip 'PORT': '3306', # mysql服务端口 } # 加载的自带或者自己定制的app包路径列表 INSTALLED_APPS = [ 'django.contrib.admin', # 管理站点 'django.contrib.auth', # 认证系统 'django.contrib.contenttypes', # 用于内容类型的框架 'django.contrib.sessions', # 会话框架,session数据可以在数据库中的django_session表中查看 'django.contrib.messages', # 消息框架 'django.contrib.staticfiles', # 管理静态文件的框架 'demo', # 自己的app ] # 语言版本切换 LANGUAGE_CODE = 'zh-hans' # 时区切换 TIME_ZONE = 'Asia/Shanghai' # 设置国际化 USE_I18N = True USE_L10N = True USE_TZ = True DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' # 静态文件地址 STATIC_URL = '/static/' # 指定静态文件的目录所在地 STATICFILES_DIRS = ( os.path.join(BASE_DIR, 'static').replace('\\', '/'), os.path.join(BASE_DIR, 'templates').replace('\\', '/'), )
三、urls路由配置
# 前端更具路由访问到后台views
urlpatterns = [
path('admin/', admin.site.urls),
path('regist/', views.regist),
path('userRegist/', views.userRegist),
path('', views.login),
]
四、数据库(models)配置
# 例子:用户表
class User(models.Model):
user_name = models.CharField(max_length=16)
password = models.CharField(max_length=16)
gender = models.CharField(max_length=20)
create_time = models.DateField(auto_now_add=True)
update_time = models.DateField(auto_now=True)
enable = models.BooleanField(default=True)
五、数据库迁移
# 1、生成迁移文件
python manage.py makemigrations
# 2、生成数据库表
python manage.py migrate
2.搭建框架结构目录
1、config,存放配置文件如conf_db数据库配置
2、interface,接口规范
3、logs,日志文件,info.log,erro.log
4、reports,存放报告
5、testcase,存放测试用例
6、tools,工具类,api,随机函数二次封装,获取excel内容等…
3.安装Pytest
一.常用装饰器
1.pytest.mark.parametrize('参数名',list)可以实现测试用例参数化
-第一个参数是字符串,多个参数中间用逗号隔开
-第二个参数是list,多组数据用元祖类型;传三个或更多参数也是这样传。list的每个元素都是一个元组,元组里的每个元素和按参数顺序一一对应
2.pytest.mark.skip(设置跳过测试用例的装饰器)
3.pytest.mark.xfail(标记测试用例”预期失败“的装饰器)
4.pytest.mark.自定义名称
-自定义marker:创建pytest的配置文件pytest.ini,然后在里面定义标记
5.pytest.fixture()
-此方法可以完成测试之前的初始化
-可以返回数据给测试函数
参数scope="module"
function:每个test都运行,默认是function的scope
class:每个class的所有test只运行一次
module:每个module的所有test只运行一次
session:每个session只运行一次
4.安装Allure插件
一.安装pytest-allure依赖库
二.allure常用装饰器,定制化报告
@allure.title("用例标题0") @allure.description("这里是对test_0用例的一些详细说明") @allure.feature('这里是一级标签') 分组第一层 @allure.story(‘二级标签’) 分组第二层 @allure.severity(‘allure.severity_level.CRITICAL’) 标记严重级别 BLOCKER = 'blocker' 中断缺陷(客服端程序无响应,无法执行下一步骤) CRITICAL = 'critical' 临界缺陷(功能点缺失) NORMAL = 'normal' 普通缺陷(数据计算错误) MINOR = 'minor' 次要缺陷(界面错误与ui需求不符) TRIVIAL = 'trivial' 轻微缺陷(必须项无提示,或者提示不规范) @allure.step(‘这里是操作步骤的描述’) @allure.attach(body, name, attachment_type, extension) body - 要写入文件的原始内容。 name - 包含文件名的字符串 attachment_type- 其中一个allure.attachment_type值 extension - 提供的将用作创建文件的扩展名 @allure.link('链接') @allure.issue('链接') @allure.testcase('链接')
三.报告加入日志信息
import logging logger = logging.getLogger() # 加入日志信息 logger.setLevel(level=logging.INFO) # 正常日志信息 def info(msg): logger.info(msg) # 调试日志信息 def debug(msg): logger.debug(msg) # 警告日志信息 def warning(msg): logger.warning(msg) # 错误日志信息 def error(msg): logger.error(msg) # 重要的信息 def critical(msg): logger.critical(msg)
4.加入发送邮件功能
python发送邮件需要用到python自带的两个模块,smtplib和email
> 创建SMTP的操作对象并连接smtp目标服务器,可以是163、QQ等
> 根据自己的账号登录目标服务器(自己的邮箱地址和邮箱授权码)
> 调用对象中的方法,发送邮件到目标地址
代码块
import smtplib from email.mime.text import MIMEText from email.header import Header def test_send_text(): # 第三方 SMTP 服务 mail_host = "smtp.126.com" # 设置服务器 mail_user = "-----@126.com" # 用户名 mail_pass = "授权码" # 口令,授权码 sender = '-----@126.com' receivers = ['-----@qq.com', ] # 接收邮件,可设置为你的QQ邮箱或者其他邮箱,可设置多个 message = MIMEText('接口自动化发送邮件测试...', 'plain', 'utf-8') message['From'] = sender message['To'] = ';'.join(receivers) subject = 'Python SMTP 邮件测试' message['Subject'] = Header(subject, 'utf-8') try: smtp = smtplib.SMTP() smtp.connect(mail_host, 25) # 25 为SMTP端口号 smtp.login(mail_user, mail_pass) # 登录验证 smtp.sendmail(sender, receivers, message.as_string()) print("邮件发送成功") except smtplib.SMTPException: print("Error: 无法发送邮件")
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。