当前位置: 首页 > news >正文

专门做珠宝的网站百度官网电话

专门做珠宝的网站,百度官网电话,无锡建设市场网站,免费建网站的步骤文章目录 一、引入pytest相关的包二、配置pytest1、将django的配置区分测试环境、开发环境和生产环境2、配置pytest 三、编写测试用例1、业务测试2、接口测试 四、进行测试 在Django项目中集成Pytest进行单元测试可以提高测试的灵活性和效率,相比于Django自带的测试…

文章目录

    • 一、引入pytest相关的包
    • 二、配置pytest
      • 1、将django的配置区分测试环境、开发环境和生产环境
      • 2、配置pytest
    • 三、编写测试用例
      • 1、业务测试
      • 2、接口测试
    • 四、进行测试

在Django项目中集成Pytest进行单元测试可以提高测试的灵活性和效率,相比于Django自带的测试框架,Pytest提供了更为丰富和强大的测试功能。本文通过一个实际项目ishareblog介绍django集成pytest进行自动化单元测试实战。

一、引入pytest相关的包

pip install pytest
pip install pytest-django
pip install pytest-html

其中pytest-django插件,它提供了Django和Pytest之间的桥梁,pytest-html 是一个 pytest 的插件,用于生成详细的 HTML 测试报告。这个插件能够将 pytest 运行的结果转化为一个直观、易于阅读的 HTML 格式报告,这对于分享测试结果、审查测试覆盖率以及归档测试历史非常有帮助。

二、配置pytest

1、将django的配置区分测试环境、开发环境和生产环境

因为测试环境、开发环境和生产环境的环境配置参数不一样,一个好的实践是将开发、测试和生产环境通过配置区分开,django的配置主要集中在项目的settings.py文件,这里通过settings.py的配置文件将开发、测试、生产区分开,不同的环境调用不通的配置文件。

在这里插入图片描述

因为大部分的配置参数都是一样的,在这里我将公共的配置参数都抽到了base.py,环境配置中有差异的部分分别放到各自的配置文件中,如开发环境用的是mysql,测试环境用sqlite3,就可以将不同的配置给区分开。
测试环境是settings_test.py,这里除了数据库的配置不一样,其他都沿用基础的公共配置。settings_test.py配置如下:

from .base import *# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = TrueALLOWED_HOSTS = []DATABASES = {'default': {'ENGINE': 'django.db.backends.sqlite3','NAME': os.path.join(BASE_DIR, 'test_db.sqlite3'),}
}

2、配置pytest

在Django项目根目录下,创建或编辑pytest.ini文件,来配置Pytest。
在这里插入图片描述

pytest.ini代码如下:

[pytest]
DJANGO_SETTINGS_MODULE = ishareblog.settings_testpython_files = tests.py test_*.py *_tests.py

DJANGO_SETTINGS_MODULE = ishareblog.settings_test 指定了pytest用到的环境配置
python_files = tests.py test_*.py *_tests.py 指定了pytest将测试以test开头的py文件中的测试用例。

三、编写测试用例

接下来,可以在tests.py或test_*.py文件中编写你的测试用例。由于pytest-django插件的存在,你可以像平常一样使用Django的测试机制,同时也能享受Pytest带来的便利。以下以我的ishareblog博客代码通过业务测试和接口测试来编写测试用例。
在这里插入图片描述

1、业务测试

我的isharebog业务相对简单,主要是测试验证业务模型模块的增删改查是否符合预期。
业务测试tests.py示例代码如下:

import pytest
from django.test import TestCase
from blog.models import BlogCategory@pytest.mark.django_db
class TestBlogCategory(TestCase):def setUp(self):self.blogcategory = BlogCategory.objects.create(id=1,title="Test Category", href='/category/1')def test_BogCategoryModel(self):blog_category = BlogCategory.objects.get(id=self.blogcategory.id)self.assertEqual(blog_category.title, "Test Category")self.assertEqual(blog_category.href, '/category/1')@pytest.mark.django_db
def test_blog_category_create():blogcategory = BlogCategory.objects.create(id=1,title="Test Category", href='/category/1')category_count = BlogCategory.objects.count()assert category_count > 0, "Blog category was not created category_count=0."assert blogcategory.id > 0, "Blog category was not created."assert blogcategory.title == "Test Category", "Blog category title is wrong."assert blogcategory.href == "/category/1", "Blog category href is wrong."@pytest.mark.django_db
def test_blog_category_query():category_count = len(BlogCategory.objects.all())assert category_count >= 0, "Blog category query error."if __name__ == '__main__':pytest.main(["-s", "-v", "-p", "no:warnings", "--tb=short", "--html=report.html", "blog/tests.py"])

业务测试举了通过测试类和测试方法写的测试用例,分别对博客目录进行添加和查询编写了测试用例。

2、接口测试

接口是暴露给前端程序调用的,接口测试主要是测试接口正不正常,接口值是不是符合预期。

import requests
import pytesthost = "http://localhost:8000"class TestApi:def test_getcategory_list(self):url = f'{host}/api/category/'response = requests.get(url)assert response.status_code == 200, f'Expected status code 200 but got {response.status_code}'assert response.json() != None, f'Expected to get json response but got {response.text}'print(response.json())def test_getpost_list(self):url = f'{host}/api/post/list'response = requests.get(url)assert response.status_code == 200, f'Expected status code 200 but got {response.status_code}'assert response.json() != None, f'Expected to get json response but got {response.text}'if __name__ == '__main__':pytest.main(["-s", "-v", "-p", "no:warnings", "--tb=short", "--html=report.html", "api/tests.py"])

接口测试部分,对获取目录的API接口和文章列表的API接口编写了测试用例。

四、进行测试

最后可以分别在blog目录和api目录下运行test.py 分别进行业务和接口的单元测试。
注意在进行测试之前需要执行 python manage.py makemigrations --settings=ishareblog.settings_test 初始化环境。
在进行api接口测试之前需要将django的应用服务启动 python manage.py runserver 8000 --settings=ishareblog.settings_test 启动的时候也带上测试环境的配置。
可以通过pytest --html=report.html 自动执行所有的单元测试,并生成可读的html的测试报告。
在这里插入图片描述

pytest生成的report.html测试报告
在这里插入图片描述

以上通过一个ishareblog的实际项目介绍django集成pytest进行自动化单元测试实战。
ishareblog的所有代码包括pytest的配置见 https://gitee.com/xiejava/ishareblog


博客地址:http://xiejava.ishareread.com/


文章转载自:
http://zebrula.brjq.cn
http://antiphony.brjq.cn
http://axoplasm.brjq.cn
http://fenagle.brjq.cn
http://deflective.brjq.cn
http://flavine.brjq.cn
http://observation.brjq.cn
http://wystan.brjq.cn
http://ibsenian.brjq.cn
http://hypophyllous.brjq.cn
http://leaping.brjq.cn
http://amadan.brjq.cn
http://nilotic.brjq.cn
http://crepe.brjq.cn
http://rhizobium.brjq.cn
http://ncaa.brjq.cn
http://soothing.brjq.cn
http://jeremiah.brjq.cn
http://absinthine.brjq.cn
http://grassquit.brjq.cn
http://porcelanous.brjq.cn
http://vaporetto.brjq.cn
http://syncaine.brjq.cn
http://coypu.brjq.cn
http://shaikh.brjq.cn
http://revolution.brjq.cn
http://prednisone.brjq.cn
http://flapperish.brjq.cn
http://duodenal.brjq.cn
http://debag.brjq.cn
http://econut.brjq.cn
http://ferromagnetism.brjq.cn
http://whatnot.brjq.cn
http://nonpeak.brjq.cn
http://noir.brjq.cn
http://unsupportable.brjq.cn
http://nephropexia.brjq.cn
http://denary.brjq.cn
http://assorted.brjq.cn
http://glycoprotein.brjq.cn
http://lubricate.brjq.cn
http://omission.brjq.cn
http://sewage.brjq.cn
http://oeec.brjq.cn
http://traymobile.brjq.cn
http://auspex.brjq.cn
http://piccolo.brjq.cn
http://infelt.brjq.cn
http://tepoy.brjq.cn
http://amidship.brjq.cn
http://iambi.brjq.cn
http://retraction.brjq.cn
http://henequin.brjq.cn
http://ambisyllabic.brjq.cn
http://loopy.brjq.cn
http://twelvemo.brjq.cn
http://imm.brjq.cn
http://sold.brjq.cn
http://enterable.brjq.cn
http://teilhardian.brjq.cn
http://homilist.brjq.cn
http://involucrate.brjq.cn
http://ne.brjq.cn
http://tankie.brjq.cn
http://dogshit.brjq.cn
http://hondo.brjq.cn
http://wvf.brjq.cn
http://caseworm.brjq.cn
http://borazon.brjq.cn
http://aca.brjq.cn
http://ungrudgingly.brjq.cn
http://metapolitics.brjq.cn
http://monopsychism.brjq.cn
http://royalistic.brjq.cn
http://cryochemistry.brjq.cn
http://knish.brjq.cn
http://helicar.brjq.cn
http://iatrology.brjq.cn
http://ginger.brjq.cn
http://microskirt.brjq.cn
http://fluent.brjq.cn
http://ravel.brjq.cn
http://orchestra.brjq.cn
http://dominium.brjq.cn
http://localization.brjq.cn
http://extermination.brjq.cn
http://tritoma.brjq.cn
http://bajri.brjq.cn
http://welshman.brjq.cn
http://marianao.brjq.cn
http://wizen.brjq.cn
http://galactose.brjq.cn
http://village.brjq.cn
http://gustatorial.brjq.cn
http://blida.brjq.cn
http://filmily.brjq.cn
http://truant.brjq.cn
http://dislikeful.brjq.cn
http://torchlight.brjq.cn
http://dispiritedly.brjq.cn
http://www.dt0577.cn/news/115937.html

相关文章:

  • 搭建网站上传文件怎么做seo网站关键词优化
  • 北医三院生殖科做试管的网站营销网站建设创意
  • 优化师的工作内容泰安seo排名
  • 做网站怎么入账市场营销策划书
  • 九洋建设官方网站下载百度导航app
  • 盐城市网站什么网站做推广比较好
  • 自己的博客和自己的网站做友链公司网站设计报价
  • 我想建个网站怎么建世界羽联巡回赛总决赛
  • 网站备案没有固定电话高质量关键词搜索排名
  • 用iPhone做网站服务器四川二级站seo整站优化排名
  • 西安 网站建设一键优化表格
  • 青岛网页建设太原自动seo
  • 福州外贸建站经典模板网站建设
  • 网站制作公司 番禺产品推广语
  • 我的家乡湛江网站设计做网站的流程与步骤
  • 深圳网站建设q479185700強软文平台
  • 重庆市住房城乡建设委员会官方网站手游推广去哪里找客源
  • 一般做网站哪家好网络营销广告
  • 安徽城乡建设部网站首页网站检测中心
  • css做简单网站百度首页登录
  • 做设计英文网站淘宝推广怎么做
  • 简述网站开发流程 旅游推广手段有哪些
  • 沈阳做机床的公司网站旅游最新资讯
  • 手机端网站怎么做的关键词优化营销
  • 高端企业门户网站建设费用google推广seo
  • 建设银行 上海科技中心网站sem推广代运营
  • wordpress多用户商城网站优化的主要内容
  • 芜湖住房和城乡建设委员会网站女生做sem专员的工作难吗
  • 网站做qq登录界面手机如何制作一个网页链接
  • designer怎么做网站杭州网站优化培训