pytest接口自动化
pytest
静姐姐_又白又菜_test
这个作者很懒,什么都没留下…
展开
-
pytest.ini 命令行参数常用命令
pytest.ini:pytest的主配置文件,可以改变pytest的默认行为,有很多可配置的选项pytest.ini 命令行参数常用命令:-v :pytest -v 说明:可以输出用例更加详细的执行信息,比如用例所在的文件及用例名称等-s:pytest -s 说明:输入我们用例中的调式信息,比如print的打印信息等,我们在上面用例8行加上一句 print(driver.title).-m:pytest -m ”标记“ 说明:执行特定的测试用例.-k:pytest -k “关键字” 说明:执行用原创 2022-04-21 17:15:36 · 666 阅读 · 0 评论 -
元祖字典集合练习题
1、输出1-100除3余1 的数,结果为tuple'''输出1-100除3余1 的数,结果为tuple'''# 传统方法li=[]for i in range(1,101): if i%3==1: li.append(i)print(tuple(li))# (1, 4, 7, 10, 13, 16, 19, 22, 25, 28, 31, 34, 37, 40, 43, 46, 49, 52, 55, 58, 61, 64, 67, 70, 73, 76, 79,.原创 2021-10-26 14:50:01 · 461 阅读 · 0 评论 -
pytest失败重跑rerunfailures插件
失败重跑pip install rerunfaillures假设在执行pytest的时候报错了当我们修改好错误后,再使用失败重跑命令跑一次pytest --reruns 1其中1表示次数。我们可以把它加到命令行参数–reruns 1再次重跑:...原创 2021-09-29 16:57:09 · 366 阅读 · 0 评论 -
闭包与装饰器
闭包:闭包:1.函数嵌套函数2.外层函数返回内层嵌套函数名3、内层嵌套函数有引用外层的一个非全局变量'''def func(num): # num=1 def count_book(): print(num) print('这个是内部函数') return count_bookres=func(12) # 返回的是函数地址<function func.<locals>.count_book at 0x0000014BA原创 2021-09-28 10:33:47 · 58 阅读 · 0 评论 -
python上传文件接口类型,以及异步接口类型
'''Create file time:2021/9/24 14:00File ctreate by author: jingying.lu'''import os'''以下接口上传文件:接口地址:/api/v1/upfile/请求方式:POST'''# 方法1:file单独拿出来import requestsfile_path='D:\code\pytest_test\\file\\test.png'relpath=os.path.relpath(file_path)prin.原创 2021-09-24 17:28:38 · 561 阅读 · 0 评论 -
pytest中conftest的scope的作用
关于scope作用:scope参数作用范围控制fixture的作用范围:session>module>class>functionfunction:每一个函数或方法都会调用class:每一个类调用一次,一个类中可以有多个方法module:每一个.py文件调用一次,该文件内又有多个function和classsession:是多个文件调用一次,可以跨.py文件调用,每个.py文件就是moduleconftest中的yield:即用例开始前会执行yield前面的代码,用例结束后原创 2021-09-07 14:24:07 · 419 阅读 · 0 评论 -
在conftest中设置命令行参数,并给到环境变量
1、当我们有多套测试环境的时候,我们可以使用命令行快速切换测试环境,这个时候不需要去修改代码中的环境地址。2.即在conftest中写命令行参数配置,并将该地址给到环境变量,用例中的地址也通过环境变量读取。在用例执行之前将去调用环境变量中的地址。# conftest# 通过命令行参数设置公共登录地址,此方法可以在cmd更改地址import pytestimport os# 设置命令行参数def pytest_addoption(parser): parser.addoption(原创 2021-08-28 20:59:35 · 656 阅读 · 0 评论 -
pytestini设置公共base_url地址
当我们希望编写的自动化代码可以在不同的部署环境执行,这时我们将base_url单独拿出来,通过配置文件和命令行参数执行。1、安装pytest-base-url插件pip install pytest-base-url --index-url https://pypi.douban.com/simple 2、第一种方法添加base_url# 在测试用例里直接传base_url,当做fixture使用# 执行的时候通过命令行执行:pytest --base-url http://example.co原创 2021-08-24 21:50:11 · 1211 阅读 · 0 评论 -
pytest的mark标记用例功能
'''用例标记,便于我们更好归类测试用例''''''@pytest.mark.skip跳过此用例:使用跳过装饰器标记它,可以传递一个可选的原因'''''' @pytest.mark.xxx标记用例为xxx '''# 执行的时候执行webtest的用例。pytest -v -m 'xxx'# 执行的时候不执行webtest的用例。pytest -v -m 'not xxx'import [email protected](reson='有bug跳过')def test01():原创 2021-08-23 22:21:49 · 136 阅读 · 0 评论 -
fixture的name以及params参数
1、name参数# [email protected](scope="function",name='alias') # name参数即给这个fixture设置别名def user(): user='aaa' return user# test_a.py# 验证设置fixture别名,我们将别名传入用例即可。def test_alias(alias): print(alias) # 打印上面fixture的返回值============原创 2021-08-22 21:28:26 · 223 阅读 · 0 评论 -
jsonpath和Jmespath提取值
# jsonpath语法:# $:根节点# @:现行节点# . [] 取子节点# .. 相对节点,就是不管位置,# * 匹配所有元素节点# [] 支持过滤器操作?()# jsonpath.jsonpath(obj, expr)传的obj参数是python的dict类型import jsonpathresult={ 'a':1, 'b':{ 'name':'yoyo' }, 'c':[{ 'name':'test',原创 2021-08-15 21:38:12 · 619 阅读 · 0 评论 -
yaml文件格式
#yaml文件:#1、大小写敏感#2、使用缩进表示层级关系,缩进不允许使用tab,只能为空格#3、#表示注释#4、后缀为.yml#使用 - 表示一个用例,即一个list,一个用例就是一个list中的值。# 数据类型:对象、数组、纯量# 1、对象:即键值对key: value(注意:冒号后面要加一个空格)key: value#还可以使用缩进表示层级关系key_1: key_2: value_2 key_3: value_3#2、数组:以-开头的行表构成一个数组- A-原创 2021-08-09 21:52:27 · 388 阅读 · 0 评论 -
Python读取yaml文件
import osdef readyaml(path): print(os.path.isfile(path)) # 判断路径是否存在 if os.path.isfile(path)=='False': raise FileNotFoundError('文件路径不存在%s' % path) f = open(path,'r',encoding='utf-8') # 打开文件 cfg = f.read() # 读取yaml文件 print(cfg原创 2021-08-02 22:18:33 · 108 阅读 · 0 评论 -
fixture的单独使用、fixture与fixture的相互调用
1、fixture的定义方法fixture:即我们通常所说的前置操作。定义fixture:在函数声明之前加上“@pytest.fixture(scope='')"scope:funtion:当前函数调用class:当前类调用module:全部py模块调用session:当前包下的用例都调用2、params:默认为None当不为None时,params里面的每个值,fixture都会调用一次3、conftest的使用一般将fixture写入到coonftest.py配置文件con原创 2021-07-27 21:54:37 · 879 阅读 · 0 评论 -
Python连接sqlserver
import pymssql# 定义连接信息host='--'port='--'user='--'password='--'database='--'charset='utf8'# 判断是否连接成功try: db = pymssql.connect(host=host,port=port,user=user,password=password,database=database,charset=charset) print('数据库连接成功!')except pymss原创 2021-07-14 18:11:21 · 226 阅读 · 0 评论 -
Python连接sqlserver安装失败,提示Failed to build pymssql ERROR: Could not build wheels for pymssql which use
今天在安装sqlserver的时候失败了,报错信息如下:解决方案:1、根据当前的 python版本下载pymssql模块,地址https://www.lfd.uci.edu/~gohlke/pythonlibs/#pymssql例如我的是python3.6-64位的就找这个版本对应的sqlserver下载到本地后,在本地的路径CMD打开窗口,输入pip install 文件名称即可...原创 2021-07-11 13:41:44 · 2094 阅读 · 0 评论 -
WARNING: Ignoring invalid distribution -ipWARNING: Ignoring invalid distribution -ip (d:\python36\li
pip安装依赖包时提示WARNING: Ignoring invalid distribution -ipWARNING: Ignoring invalid distribution -ip (d:\python36\li警告原因:之前安装插件失败/中途退出,导致插件安装出现异常导致的解决方法:找到警告信息中报错的目录,然后删掉~开头的文件夹。...原创 2021-07-07 18:28:56 · 1023 阅读 · 0 评论 -
更新pip之后提示ModuleNotFoundError: No module named ‘pip‘
今天在更新pip的时候提示ModuleNotFoundError: No module named ‘pip’,更新的时候出现问题了然后输入以下2条命令解决。python -m ensurepippython -m pip install --upgrade pip原创 2021-07-07 16:55:24 · 77 阅读 · 0 评论 -
3、requests发post请求
post请求的参数body有以下几种类型以及在python中使用何种方式传参:参数body类型: Content-Type传参方式applicationapplication/jsonjson={‘key’:‘value1’}application/x-www-form-urlencodedata={‘key’:‘value1’}multipart/form-datadata={‘key’:‘value1’}text/xmldata={‘key’:‘value原创 2021-01-14 22:13:35 · 108 阅读 · 0 评论 -
如何处理SSL认证警告
1、什么是SSL认证SSL即安全套接字层。SSL认证是指客户端到服务端的认证。主要用来提供对用户和服务器的认证,对传送的数据进行加密和隐藏,确保数据在传送中不被改变,即数据的完成性。2、由于https的请求相对于HTTP安全级别高,需要SSL证书,request可以为HTTPS请求验证SSL证书,就像web浏览器一样(1)为了忽略SSL证书的认证,使用verify=False即可。r = requests.get(url, verify=False)(2)为了忽略警告,导入urllib3库im原创 2021-01-10 22:08:43 · 698 阅读 · 1 评论 -
__init__.py的作用
1、标识这个文件夹是一个packtage2、当我们从这个模块导入函数的话,如果没有__init__文件,则会提示没有这个模块原创 2021-01-10 16:12:30 · 90 阅读 · 0 评论 -
Jenkins之测试allure报告自动发送邮件
授权码填写见此博文:https://www.cnblogs.com/langkyeSir/p/13268289.html原创 2021-01-06 08:30:27 · 1878 阅读 · 3 评论 -
Jenkins生成allure报告
授权码填写见此博文:https://www.cnblogs.com/langkyeSir/p/13268289.html原创 2021-01-05 22:06:12 · 701 阅读 · 0 评论 -
Jenkins在Linux上的安装与启动,拉取git代码并自动运行
1、我们在安装Jenkins之前先进入Jenkins官网,找到最新的Jenkins镜像安装命令地址:https://hub.docker.com/r/jenkins/jenkins/tags然后复制命令装最新的目的是如果jenkins版本太低的话,很多插件安装不上,升级也很麻烦。2、然后在Linux上安装,输入上面复制的命令3、建立Jenkins的工作目录mkdir /home/jenkins4、查看目录归属ID5、给ID为1000的用户添加操作权限6、运行容器:docker ru原创 2021-01-03 20:49:54 · 869 阅读 · 0 评论 -
在Pycharm上提交代码到仓库
使用git命令进行提交代码,一般在本地无仓库的时候使用,当我们每次修改了代码后,需要提交至仓库时,使用pycharm的提交代码功能会方便很多。配置git打开Pycharm,然后打开以下页面拉取代码输入仓库地址下载项目代码:当我们看到别人的项目写的很好时,在URL输入仓库地址后,会将别人的项目代码拉到本地。将github上的地址拷贝进去输入git的账号密码即可拉取别人的代码提交修改后的代码修改后的代码的file会显示不一样的颜色2、修改完之后,提交代码3原创 2021-01-02 17:49:19 · 3102 阅读 · 1 评论 -
2、requests发get请求
一、环境的安装与检查环境的安装第一步先检查当前Python环境是否可以用,即输入Python。检查pip,检查pip与安装的Python环境是否对应,如果版本过低,则会有提示。安装requests环境,即输入pip install requests安装指定版本的requests。pip install requests==要安装的版本号,一般默认安装最新版本查看:pip show requests查看全部安装包:pip list二、GET请求方式纯URL地址,参数分离出来,接口地原创 2020-12-28 22:43:10 · 241 阅读 · 1 评论 -
1、http协议
1、http协议介绍(1)是一种超文本传输协议(2)基于请求与响应模式的、无状态的、应用层的协议。2、http协议的请求方法GET POST PUT DELETE OPTIONS方法**GET:**请求指定的页面信息,并返回实体主体。POST: 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。**PUT :**从客户端向服务器传送的数据取代指定的文档的内容。DELETE: 请求服务器删除指定的原创 2020-12-28 17:31:28 · 68 阅读 · 0 评论 -
jenkins自动拉取git代码并运行
当我们的Jenkins要在某一台固定的电脑执行,我们则要将这台电脑加到Jenkins里。操作步骤如下:1、节点管理点击Jenkins首页,然后点击系统管理–节点管理,进入到节点管理页面2、点击新建节点3、在执行(测试)机器上,我们可以同时执行几个任务。远程工作目录:即我们放置代码的目录,我们要执行的代码的目录![在这里插入图片描述](https://img-blog.csdnimg.cn/20200618192134332.pngUsage:(1)尽可能的使用这个节点:即既可以原创 2020-08-22 12:49:06 · 1251 阅读 · 0 评论 -
allure的安装使用以及报告的生成
详细见此篇博客:https://www.cnblogs.com/yoyoketang/p/12203778.htmlallure的几种方法:allure用例描述使用方法 参数值 参数说明@allure.epic() epic描述 敏捷里面的概念,定义史诗,往下是[email protected]() 模块名称 功能点的描原创 2020-06-10 14:46:28 · 1621 阅读 · 0 评论 -
安装allure
1、在安装allure之前,先安装好jdk,配置好环境变量,环境变量的正确配置非常重要,否则会有以下提示:2、以下是如何正确配置JDK:(1)配置JDK的java_home记住:千万不要在后面加 ;号(2)配置classpath:(3)配置path3、配置好之后,输入java,以及javac出现以下结果即可配置正确4、接下来进入allure的下载地址:https://github.com/allure-framework/allure2/releases下载完之后,解压到本地,将原创 2020-06-10 11:17:16 · 1721 阅读 · 10 评论 -
关于pytest参数化
在pytest中,当我们输入的参数不同,但输出结果一样时,就可以用pytest参数化。1、首先将测试Py 文件与测试数据分离,即在py中写代码,测试数据写在yaml文件中2、yaml文件(1)首先要安装:pip install pyyaml(2)然后建立一个yaml文件来存储数据yaml的语法可自己学习,相当于字典的键值对。(3)接下来要考虑怎么将PY文件与yaml文件关联起来3、写一个读取yaml文件的函数```pythonimport yamlimport osdef read原创 2020-05-26 20:03:09 · 1749 阅读 · 0 评论 -
Jenkins在windows的安装与启动
1、下载到下载地址:http://mirrors.jenkins-ci.org/war/latest/jenkins.war下载war包。2、启动下载完成后,启动方法有2种一种是将war包放置在tomcat的webapps目录下,然后启动start.bat文件即可。当我们启动Tomcat的时候,Jenkins会随着服务器一起启动。一种是直接cmd到Jenkins的war包的放置目录,然后输入命令即可启动Jenkinsjava -jar jenkins.war```![在这里插入图片描述](h原创 2020-05-22 09:06:12 · 842 阅读 · 0 评论