08 2022 档案
摘要:对于Django来说,当它接收到Http请求之后,会根据Http携带的请求参数与请求信息来创建一个WSGIRequest对象,并且作为视图函数的第一个参数,这个参数通常写成request,该参数包含用户所有的请求信息。 WSGIRequest继承HttpRequest 下面对一些常用的属性进行说明
阅读全文
摘要:接口自动化过程中,我们经常需要新增数据。例如:注册账户时,同一账号只能注册一次,再次注册会失败。此时我们,就需要用到后置处理器,清除数据; 有的我们可以调用删除的接口操作,但是有的需要连接数据库删除(推荐,由于不确定数据库是否已存在相同数据,所以我们可以查询然后判断是直接注册还是删除后再注册) py
阅读全文
摘要:一:URL配置(URLconf)就像Django 所支撑网站的目录。它的本质是URL模式以及要为该URL模式调用的视图函数之间的映射表;你就是以这种方式告诉Django,对于这个URL调用这段代码,对于那个URL调用那段代码。 urlpatterns = [url(正则表达式, views视图函数,
阅读全文
摘要:Django的配置文件setting.py用于配置整个网站的环境和功能,核心配置必须有项目路径、秘钥配置、域名访问权限、APP列表、中间件、资源文件、模板配置、数据库的链接方式等。 """ Django settings for mysite0828 project. Generated by 'd
阅读全文
摘要:一:MVC和MTV模式 著名的MVC模式:所谓MVC就是把web应用分为模型(M),控制器(C),视图(V)三层;他们之间以一种插件似的,松耦合的方式连接在一起。模型负责业务对象与数据库的对象(ORM),视图负责与用户的交互(页面),控制器(C)接受用户的输入调用模型和视图完成用户的请求。 Djan
阅读全文
摘要:什么是web框架 框架,即farmework。特指为解决一个开放性问题而设计的具有一定约束性的支撑结构,使用框架可以帮你快速开发特定的系统,简单地说,就是你用别人搭建好的舞台来做表演。 对于所有的web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端 impor
阅读全文
摘要:前言:用过pytest的小伙伴应该都知道,pytest之所以功能强大,是因为pytest的插件非常的多。这是插件大多是pytest的使用者所开发的,今天咱们专门来聊聊如何去自己开发Pytest的插件。 一:pytest插件的介绍 pytest框架采用的是插件系统的模式来设计的,pytest运行的所有
阅读全文
摘要:pytest 的钩子函数有很多,通过钩子函数的学习可以了解到pytest在执行用例的每个阶段做什么事情,也方便后续对pytest二次开发学习。详细文档可以查看pytest官方文档https://docs.pytest.org/en/latest/reference.html#hooks 钩子函数总结
阅读全文
摘要:前言:在一个测试用例中需要多次调用同一个fixture的时候,工厂化的 fixture 的模式对于一个 fixture 在单一的测试中需要被多次调用非常有用。 之前写fixture是直接return一个数据,在测试用例中可以直接使用,现在我们需要返回一个生成数据的函数,这样就能在用例中多次调用了。
阅读全文
摘要:前言:前面讲 request 是pytest的一个内置 fixture ,作用是获取测试的上下文,可以通过request.config 获取配置对象。pytestconfig 的作用跟 request.config 是一样的,都是获取配置对象。 pytestconfig 是一个内置fixture,用
阅读全文
摘要:前言:request 是 pytest 的内置 fixture , "为请求对象提供对请求测试上下文的访问权,并且在fixture被间接参数化的情况下具有可选的“param”属性。" 1、request.param 前面讲fixture参数化的时候,有接触到 "request.param" 用于获取
阅读全文
摘要:前言:写完一个项目的自动化用例之后,发现有些用例运行较慢,影响整体的用例运行速度,于是领导说找出运行慢的那几个用例优化下。--durations 参数可以统计出每个用例运行的时间,对用例的时间做个排序。 pytest -h 查看命令行参数,关于 --durations=N 参数的使用方式 --dur
阅读全文
摘要:在 allure 报告首页 ENVIRONMENT 显示 'There are no environment variables' 没有环境变量的配置信息。环境变量配置可以添加报告相关的配置参数,如运行的系统环境,版本号,测试环境,测试人员等基本信息。 问题描述 allure 报告首页 ENVIRO
阅读全文
摘要:前言:pytest 结合 allure 描述用例的时候我们一般使用 @allure.title 和 @allure.description 描述测试用例的标题和详情。在用例里面也可以动态更新标题和详情,使用allure.dynamic方法实现。 allure动态属性 allure.dynamic.f
阅读全文
摘要:前言:什么是元数据?元数据是关于数据的描述,存储着关于数据的信息,为人们更方便地检索信息提供了帮助。pytest 框架里面的元数据可以使用 pytest-metadata 插件实现。文档地址https://pypi.org/project/pytest-metadata/ 未安装插件pytest-m
阅读全文
摘要:Allure介绍 Allure是一款测试报告框架,不仅报告美观,而且方便CI集成。 allure是一款开源的,专门用来展示测试结果的一个工具,allure可以与很多的测试框架做集成,比如:java的Junit、TestNG;python的pytest等。 allure会将测试用例的执行数据保存到xm
阅读全文
摘要:前言:平常我们手工测试用例非常多时,比如有1千条用例,假设每个用例执行需要1分钟。如果一个测试人员执行需要1000分钟才能执行完,当项目非常紧急的时候,我们会用测试人力成本换取时间成本,这个时候多找个小伙伴把任务分成2部分,于是时间缩减一半。如果是十个人一起执行,1000个用例理论上只需100分钟就
阅读全文
摘要:前言:平常在做功能测试的时候,经常会遇到某个模块不稳定,偶然会出现一些bug,对于这种问题我们会针对此用例反复执行多次,最终复现出问题来。 自动化运行用例时候,也会出现偶然的bug,可以针对单个用例,或者针对某个模块的用例重复执行多次 1、环境搭建 pip install pytest-repeat
阅读全文
摘要:前言:80%的bug集中在20%的模块,越是容易出现bug的模块,bug是越改越多“平常我们做手工测试的时候,比如用100个用例需要执行,其中10个用例失败了,当bug修复后,我们一般是重点测上次失败的用例。那么自动化测试也一样,当用例特别多时,为了节省时间,第一次部分用例失败了,修复完之后,可以只
阅读全文
摘要:一:skip跳过用例 pytest.mark.skip可以标记无法在某些平台上运行的测试功能,或者您希望失败的测试功能希望满足某些条件才执行某些测试用例,否则pytest会跳过运行该测试用例。实际常见场景:跳过非Windows平台上的仅Windows测试,或者跳过依赖于当前不可用的外部资源(例如数据
阅读全文
摘要:pytest.ini是pytest框架的主配置文件,实际生产中主要用来规范日志的格式或日志文件保存的位置,增加用例标签等等,总之简单易用,属于pytest学习的重要知识点。 pytest.ini文件命名不能修改,文件中第一行必须用【pytest】申明这是一个pytest的ini文件 #基本用法 #保
阅读全文
摘要:实际工作过程中,一般都有好几套环境,所有我们的自动化脚本也需要在不同的环境运行。每个环境写一套自动化?当然不可能咯,不同环境接口路径没有特殊情况下一般是一样的,不同的就是服务器地址(域名)。 DEV、SIT、UAT、PRD,分别是开发、系统集成、用户验收、预生产四套环境 DEV = Develpme
阅读全文
摘要:前面我们已经了解了pytest基本规则与requests发送请求的基础,如果领导给我们一个接口自动化的任务,我们该如何开展工作呢?当然是先搭建项目基本框架,然后在框架的基础上添砖加瓦啦。下面我们就一起来看看如何入手吧。 1、pycharm中新建项目,新建文件夹,分别管理不同的资源,如下图所示: 这个
阅读全文
摘要:今天,小编将分享6个堪称神仙的内置函数。在很多计算机书籍中,它们也通常作为高阶函数来介绍。而我自己在日常工作中,经常使用它们来使代码更快,更易于理解。 1、Lambda函数 Lambda函数用于创建匿名函数,即没有名称的函数。它只是一个表达式,函数体比def简单很多。当我们需要创建一个函数来执行单个
阅读全文
摘要:前言: 代码的可维护性除了代码冗余之外还有就是数据尽量不要和代码掺杂在一起,因为阅读起来会非常的凌乱;数据分离能更好的增加代码可读性和可维护性,也能更好的二次修改使用。 上一篇小编与大家分享了pytest参数化,文章中,数据与代码放在一个py文件中,如果要修改数据就比较麻烦了,本篇我们将使用YAML
阅读全文
摘要:前言: 软件测试中,输入相应值,检查期望值,是常见测试方法。 在自动化测试中,一个测试用例对应一个测试点,通常一组测试数据无法完全覆盖测试范围,所以,需要参数化来传递多组数据。 pytest的测试用例参数化使用如下装饰器即可完成 @pytest.mark.parametrize(argnames,
阅读全文
摘要:前言: 在做自动化的过程中,编写用例时候需要用到用例的前置和用例的后置,其中pytest中有setup_class和teardown_class可以帮助我们完成这些,但是不够完善而且灵活性不够强。举个简单的例子,一个calss中有3条用例,其中2条需要登录,1条不需要登录,这个时候如果在用setup
阅读全文
摘要:前言:当我们使用 pytest 框架写用例的时候,一定要按它的命名规范去写用例,这样框架才能找到哪些是用例需要执行,哪些不需要执行 用例设计原则 文件名以 test_.py 文件呾_test.py 以 test_开头的函数 以 Test 开头的类 以 test_开头的方法 所有的包 pakege 必
阅读全文
摘要:pytest简介 pytest 是 python 的一种单元测试框架,不 python 自带的 unittest测试框架类似,但是比 unittest 框架使用起来更简洁,效率更高。根据 pytest 的官方网站介绍,它具有如下特点: 非常容易上手,入门简单,文档丰富,文档中有很多实例可以参考; 能
阅读全文