python
桦泽
生活,记录每一个成长瞬间。未来的你,会感谢今天仍在奋斗的你
展开
-
parsel html提取值处理
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>标签选择器</title></head><body> <p>css标签选择器的介绍</p> <p class='p'>标签选择器、类选择器、ID选择器</p> <a href=原创 2021-08-05 18:07:41 · 596 阅读 · 0 评论 -
接口契约校验
json_verify说明: 主要用于json数据diff,输出匹配的字段信息、字段匹配准确率安装方式:pip install json_verify1、 生成契约校验实例from json_verify import JsonVerifydemo_json = { "msg": "一段文字信息", "phone": 13746067836, "name": [ {"age": 12}, {"phone": 213213, "age"原创 2021-08-02 15:25:20 · 575 阅读 · 0 评论 -
python 魔法函数 1
构造函数__init__ (构造函数)实例化对象 class Person: # 实例化一个人类 def __init__(self, hight, weight, sex): self.hight = hight self.weight = weight self.sex = sexnew_person = Person(185, 80, women)print(new_person.hight)print(new_perso原创 2021-07-21 15:25:37 · 176 阅读 · 0 评论 -
pycharm无法调式卡在connect界面
1、应用程序模块名与pycharm debug 模块重名pycharm会报错无法调式,重命名模块即可2、程序包含特殊导入eg: from locust import main调式程序一直会卡在这个代码段无法进入端点处原创 2021-06-23 21:27:53 · 857 阅读 · 1 评论 -
The desired capabilities must include either an app, appPackage or browserName
appium连接提示需要app参数或者appPackage or browserName参数 caps = { 'platformName': 'android', 'skipServerInstallation': True, 'skipDeviceInitialization': True,'deviceName': 'KWG5T16324000391', 'newCommandTimeo': '60'}使用桌面版appium会报此错误,博主使用后安装无桌面版本appium后启动正常使原创 2021-06-21 10:03:58 · 3018 阅读 · 3 评论 -
selenium wedriver镜像地址
geckodriver(Firefox): “https://github.com/mozilla/geckodriver/releases”国内镜像: “http://npm.taobao.org/mirrors/geckodriver/”Chromedriver(Chrome): “https://sites.google.com/a/chromium.org/chromedriver/home”国内镜像: “http://npm.taobao.org/mirrors/chromedriver/”原创 2021-06-02 09:07:54 · 808 阅读 · 0 评论 -
json格式转换为yaml格式乱码
使用pyyamlimport yamla = {"name": "小李", "school": [1 ,2 ,3]}res = yaml.dump(a,default_flow_style=False, encoding='utf-8', allow_unicode=True)print(res)结果:# 加上后面参数防止中文乱码yaml.dump(a, default_flow_style=False, allow_unicode=True)print(res)...原创 2021-05-11 20:27:38 · 518 阅读 · 0 评论 -
python exec 函数内部使用
code = """import requestsdef session(): return requests.session()"""def demo_func(code): exec(code) print(locals().get("session")()) res = demo_func(code)执行函数时出现报错:正确使用:code = """import requestsdef session(): return requests.ses原创 2021-05-11 13:37:10 · 205 阅读 · 0 评论 -
7. python faker
faker的解释Faker是一个Python包,它会为你生成假数据。无论您是需要启动数据库、创建漂亮的XML文档、填写持久性以进行压力测试,还是将从生产服务获取的数据匿名化,Faker都适合您。常用场景:接口请求时创建随机数安装方法: pip install faker -i https://pypi.douban.com/simple使用方法:from faker import Fakerfaker = Faker(locale='zh-CN') # 支持的语言分类 zh-CN代指中文pr原创 2021-04-06 15:22:47 · 218 阅读 · 0 评论 -
5. jmespath处理json数据
安装jmespathpip install jmespath -i https://pypi.douban.com/simple常用:(同作用其他类似库:jsonpath)1、提取接口响应数据作为关联接口参数化数据来源2、提取接口关键字信息作为接口校验的字段实际值与期望值比较常见接口响应数据:response = { "code": 0, "message": "操作成功", "data": [ {"id": "421", "group_name": "前台1", "em原创 2021-04-06 11:20:22 · 384 阅读 · 0 评论 -
6. python读取yaml文件
目录结构:实际在接口自动化我们可以使用很多类型的配置文件如: ini、json、config等这里我们使用yaml因为格式清晰、层级目录结构有颜色标注__|-- demo.yaml|–yamlTreating.py文件内容demo.yaml# yamlTreating.pyimport yamlwith open('demo.yaml', 'r', encoding='utf-8') as f: content = f.read() file = yaml.load原创 2021-04-06 09:56:42 · 112 阅读 · 0 评论 -
python 连接数据库
专注于MySQL数据库,其他数据库都存在相对应的python库,使用方法大同小异。自行百度···import pymysqlDATA_BASE = {'host': '10.118.XX.XX', 'user': 'root', 'port': 3306, 'password': '#0516#', 'database': 'testfirstroom', 'charset': 'utf8'}conn = pymysql.connect(**DATA_BASE) # 实例原创 2021-03-31 19:49:07 · 108 阅读 · 0 评论 -
AttributeError: Got AttributeError when attempting to get a value for field
使用 django restftramework报错请求url:当请求结果返回列表时需要在序列化是添加many=trueserializer 序列化器 天机many=True原创 2021-03-03 16:57:27 · 2837 阅读 · 2 评论 -
python通过装饰类装饰类下所有方法(2)
from types import FunctionTypedef outer(my_class): class Inner(my_class): def __init__(self): for var, value in my_class.__dict__.items(): # 遍历被装饰类(myclass)的所有类方法 if isinstance(value, FunctionType):原创 2020-12-03 10:26:03 · 298 阅读 · 0 评论 -
python通过装饰类装饰类下所有方法(1)
废话不多说,直接上源码def outer(myclass): class Inner(myclass): def __getattribute__(self, item): x = super().__getattribute__(item) # 调用父类的getattribute方法 print('这里可以写入你的功能函数') return x return Inner原创 2020-12-01 19:51:21 · 630 阅读 · 0 评论 -
Pycharm 一直discovering
原因: 常见于pycharm卸载后再次安装,当每个项目打开后选择解释器 这样每个项目都有自己的解释器当同时打开多个项目时pycharm会去每个项目解释去查找模块 导致一直查找模块是否更新解决办法设置默认系统解释器第一步:第二步:点击add注意:点击showall如果发现弹出窗口有项目解释器要点击新窗口右边‘’-‘’号删除第三步:点击下图框选图标第四步:点击···,后选择解释器,然后点击ok注意:完成后showall解释器只剩下一个系统安装路径的解释器,下次直接点选就好了..原创 2020-10-29 20:36:11 · 3663 阅读 · 0 评论 -
pytest集成loguru输出到allure报告
loguru日志内容丰富颜色多样,已有很多博客介绍这里就不详细介绍了1、使用pytest时正常使用logurufrom loguru import loggerlogger.add("file.log", format="{time:YYYY-MM-DD at HH:mm:ss} | {message}")执行完pytest测试用例后使用 allure serve allure_report生成测试报告:1、allure文件没有txt文件2、html报告无log日志2、解决方案使用时原创 2020-10-16 19:26:22 · 3503 阅读 · 3 评论 -
python 获取当前运行函数名称
# 函数内部直接获取当前运行函数名称import sysdef get_fun_name(): return sys._getframe().f_code.co_nameprint(get_fun_name())>>> get_fun_name# 动态获取运行函数名称import inspectdef get_dynamic_name(): return inspect.stack()[1][3]def name(): return get_原创 2020-09-17 13:42:54 · 498 阅读 · 0 评论