- 博客(32)
- 收藏
- 关注
原创 httprunner4,写日志文件报错:’gbk’ codec can’t encode character ‘\xa9’ in position 0:illegal multibyte sequen
然后,在httprunner中,是通过框架执行,不用自己编写文件方式,httprunner使用 loguru 模块进行日志文件管理。,在写进txt时Windows默认转码成gbk,遇到某些gbk不支持的字符就会报错。在logger.add中 加入encoding="utf-8",找到 runner.py源码文件,在写入TXT文件时,某些页面报。网页及python的编码都是。
2025-02-28 16:03:43
180
原创 Jenkins安装与配置
安装jenkins前必须先安装jdk,最新版的jenkins需要jdk11以上。这里我安装2.426.2-1.1+jdk8(jdk1.1),同时安装好git和maven,做好配置,方便后期使用。下图是各jenkins版本和所需jdk版本的匹配图步骤一:安装JDK安装JDK步骤二:下载并安装Jenkinssudowget配置jenkinsJDK路径修改执行用户为root,修改安装的jdk路径systemctldaemon-reload//重新加载配置文件。
2025-01-20 10:52:10
406
原创 flask中 abort() 函数的作用
你还可以自定义错误处理器,以便在调用abort()这样,当调用abort(404)时,返回的响应将是自定义的消息,而不是默认的 Flask 错误页面。
2024-10-30 10:17:19
344
1
原创 解决“No module named pip”问题
打开电脑的环境变量编辑器,在系统变量里面找到path,点击编辑,在后面添加上python的安装路径以及路径下的Scripts文件夹的路径。在安装过程中,勾选“Add Python to PATH”选项,将python.exe和pip.exe添加到环境变量中。在使用Python的pip工具时,可能会遇到“No module named pip”的错误。如果当前Python安装的版本过高或过低,也可能会导致“No module named pip”问题。方法二:使用get-pip.py安装pip。
2024-06-14 14:03:54
2078
原创 pytest依赖pytest.mark.dependency()和pytest.mark.parametrize()组合
pytest依赖跳过参数化测试
2023-01-31 18:08:56
385
原创 pandas 读取csv : ‘utf-8‘ codec can‘t decode byte 0xff in position 0: invalid start byte
pandas 读取csv : 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte
2022-11-01 12:12:13
1810
转载 Python 批量删除文件指定行内容
import os# delete_lines(源文件夹,目标文件夹,删除的起始行,删除的终止行)def delete_lines(source,target,begin,end): for root,dirs,files in os.walk(source): for file in files: f1=open(os.path.join(root,file),"rb") # 打开源文件 f2=open(os.path...
2022-05-26 09:51:05
1537
原创 httprunner学习
前言httprunner 3.x 取值是用 jmespath 表达式,当从头部取值Content-Type时,有特殊字符 -,会报错jmespath.exceptions.LexerError: Bad jmespath expression: Unknown token '-': headers.Content-Type使用示例从返回的headers提取Content-Type内容from httprunner import HttpRunner, Config, Step, RunR
2022-05-26 09:49:08
139
原创 Python调用钉钉机器人推送消息
1.创建钉钉机器人 群机器人是钉钉群的高级扩展功能,群机器人可以将第三方服务的信息聚合到群聊中,实现自动化的信息同步; 进入一个钉钉群,点击右上角的“群设置”进入群设置页面; 选择群机器人点击进入,在机器人管理页面选择“自定义”机器人,输入机器人名字并选择要发送消息的群,如果需要的话,可以为机器人设置一个头像。点击"完成添加",完成后会生成Hook地址,点击“复制”按钮,即可获得这个机器人对应的Webhook地址; 也可以对群机器人进行添加、编辑和删除的操...
2022-03-18 15:25:56
1824
原创 python执行系统命令的方法:subprocess
适用于Python3subprocess可以执行shell命令的相关模块和函数有:os.system os.spawnos.popen –废弃popen2.* –废弃commands.* –废弃,3.x中被移除例子基本用法和commands模块类似,只是没有getstatus对象>>> subprocess.getstatusoutput('pwd')(0, '/home/ronny')>>> subprocess.getoutp
2022-03-17 19:50:12
2238
原创 为什么要同时使用os.path.abspath和os.path.realpath?
在多个开源项目中,我看到人们确实os.path.abspath(os.path.realpath(__file__))在获取当前文件的绝对路径。但是,我发现os.path.abspath(__file__)并os.path.realpath(__file__)产生相同的结果。os.path.abspath(os.path.realpath(__file__))似乎有点多余。人们使用它是有原因的吗?os.path.realpath在支持它们的操作系统上取消引用符号链接,返回path的真实路径,不.
2022-03-17 11:15:33
1212
转载 os.getcwd()与os.path.dirname(os.path.realpath(__file__))区别
目前用的是Python的os.getcwd()方法,但我一位朋友给出的是os.path.dirname(os.path.realpath(__file__))那么,这两种方式到底有什么本质区别?博主通过具体的实验来进行解释。先给出2个目录的结构:(1)PycharmProjects/pythonLearn/dir/dir2/getRootPath.py(2)PycharmProjects/pythonLearn/getPath.py【1】那我们先看看第一个PycharmPro
2022-03-17 10:56:15
443
原创 requests之session会话管理
session会话管理1.如何理解http协议里的无状态2.为什么用到cookie3.为什么要用到会话管理?4.手动传入cookie5.session会话管理1.如何理解http协议里的无状态比如商场购物车,你把东西放到购物车,如果http协议的话,刷新页面,购物车就为空了简单理解就是http刷新后就不会记得你之前做了什么2.为什么用到cookieweb2.0交互时代,所以就引用cookie和seesion来记录状态,比如登录3.为什么要用到会话管理?如果很多个接口都
2022-02-25 18:24:23
668
转载 HttpRunner3源码阅读:4. loader项目路径加载,用例文件转换、方法字典生成
loader.py这个文件中主要是对yaml,json用例加载转换成用例处理, 预置函数加载成方法字典,路径加载等借助impotlib 动态导入module, vars内置函数解析module中的信息,并将其处理和加入方法字典中name 作为 key, 函数对象作为value,来完成调用扩展函数的上半部分内容导包import csv # 内置库:csv 读取 import importlib # 内置库 处理动态导包得import json # 内置库 json 处理i
2022-02-25 17:36:20
741
转载 httprunner3 log放到allure中显示
httprunner3的log本身是不能在allure上展示的可以通过改写\Lib\site-packages\httprunner\runner.py文件中的test_start方法实现报告存放allure中展示添加一行allure.attach.file(self.__log_path, name='log', attachment_type=allure.attachment_type.TEXT)改写代码如下:登录后复制def test_start(self, param:
2022-02-25 17:24:51
667
原创 Python 函数后带箭头 (->)
Python 3 -> 是函数注释的一部分,表示函数返回值的类型。def useful_function(x) -> int: # Useful code, using x, here return x
2022-02-24 19:54:29
1407
原创 __all__的作用
设置可被其他文件import的变量或函数。一般的格式为__all__ = string的list,例如A.py文件中有__all__ = ['var1', 'var3', 'function2']var1 = 2var2 = 4var3 = 6def function1(): print('function1')def function2(): print('function2')当from A import *时,只有var1,var3和function2可被导
2022-02-24 12:08:34
564
转载 httprunner3源码解读(2)models.py
源码目录结构 我们首先来看下models.py的代码结构 我们可以看到这个模块中定义了12个属性和22个模型类,我们依次来看 属性源码分析 import osfrom enum import Enumfrom typing import Anyfrom typing import Dict, Text, Union, Callablefrom typing import List from pydantic import BaseModel, Fieldfrom pydantic impo...
2022-02-24 10:32:17
398
转载 httprunner3源码解读(1)简单介绍源码模块内容
前言 最近想着搭建一个API测试平台,基础的注册登录功能已经完成,就差测试框架的选型,最后还是选择了httprunner,github上已经有很多开源的httprunner测试平台,但是看了下都是基于httprunner1.5.8测试框架,1.0和3.0差距还是很大的,所以自己想集成个3.0的平台,既然要继承,读懂源码必不可少 源码目录结构 我们先来看下源码的目录结构 app 是一个Python package,这部分主要使用了fastapi框架 ├── __init__.py...
2022-02-24 10:25:44
667
原创 在 Python 中生成 AST
在 Python 的底层实现中已经包含了源码到 AST 到 CodeObject 的转换过程,实际上 Python 也提供了一组工具,帮助我们直接控制 AST,如果熟练掌握的话,可以实现一些很有意思的魔法。从源码到 ASTPython 已经内置了 ast 模块,可以直接从源码生成 AST,另外还有一组工具可以对 AST 做一些调整。首先从最基本的开始,从源码获得 AST 对象。ast.parse(source, filename='<unknown>', mode='exec',
2022-02-18 10:45:55
1882
转载 python中repr与codecs的使用(转义字符转义功能的取消与恢复)
注意一点:所见并非所得:比如:>>> x = r'((function(){var a\x3d2368684709;var b\x3d707691395;return 425382+\x27.\x27+(a+b)})());'>>> x'((function(){var a\\x3d2368684709;var b\\x3d707691395;return 425382+\\x27.\\x27+(a+b)})());'>>> print..
2022-02-18 10:35:04
2720
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人