自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(423)
  • 资源 (19)
  • 问答 (1)
  • 收藏
  • 关注

原创 python项目中的路径导入问题

python项目中的路径导入问题

2025-04-08 11:34:17 182

原创 Python如何理解函数中的self

self是Python面向对象模型的核心机制,通过显式绑定实例引用,实现了动态性、多态性和代码复用。理解其底层原理(如方法解析顺序MRO)和最佳实践(如命名规范、属性封装),能显著提升代码的可维护性和扩展性。

2025-03-27 09:30:40 359

原创 Python 3.8 Requests 爬虫教程(2025最新版)

【代码】Python 3.8 Requests 爬虫教程(2025最新版)

2025-03-25 10:26:26 1132

原创 Python高阶教程 reduce()用法

•。

2025-03-25 09:48:17 380

原创 Python高阶教程 * 和 ** 的用法

可以显著提升代码的简洁性和动态处理能力,但需注意场景适配与可维护性。这是最基础的用法,与其他编程语言类似。分隔符强制后续参数以关键字形式传递。:将列表/元组拆分为位置参数传递。适用于处理不定长序列的分段操作。:将字典拆分为关键字参数传递。:公共键的值会被后续字典覆盖。这在动态传参时非常灵活。增强代码可读性和安全性。

2025-03-25 09:27:20 426

原创 python设计模式——单例模式

单例模式(Singleton Pattern)即一个类只能拥有一个实例对象,实例化多次的结果都会指向同一个对象。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。特点:全局唯一,允许更改。

2024-07-29 10:42:49 714

原创 如何理解Python中的__new__ 和__init__ 方法

_new__和__init__是两个在类定义中经常遇到但作用完全不同的特殊方法(也称为魔术方法或双下划线方法),在讲解单例模式之前,必须先学习这块的知识。

2024-07-26 12:04:25 425

原创 python设计模式——普通工厂模式

python设计模式 普通工厂模式。

2024-07-25 15:49:52 344

原创 自动化测试报告pytest-html样式美化

pytest-html报告美化,自动化测试报告美化处理

2024-07-02 16:00:47 585 2

原创 【streamlit】将markdown文件,以网页形式打开

【代码】【无标题】将markdown文件,以网页形式打开。

2024-06-19 11:29:17 425

原创 如何理解python中的*args和**kwargs

args用于表示可变数量的位置参数(Positional Arguments)kwargs用于表示关键字参数(Keyword Arguments)。

2023-11-01 16:51:30 317

原创 pytest系列教程——13、使用pytest-html创建测试报告

在本地的python安装目录下, /site-packages/site-packages/下替换。因为测试报告目前都是英文版的,目前可以通过使用其他开源项目替换成生成中文版报告。则生成的css文件和html文件集为一体,最终只生成一个html文件。整个文件,然后再执行会发现已经替换为中文版的报告。(包括html文件的css样式)文件夹。命令行参数执行,加入。命令行参数执行,加入。

2023-02-14 10:04:37 518

原创 python reduce函数的用处

最近在看reduce函数的时候,发现已经不能直接使用了,需要从functools模块导入。如果使用reduce的话, 用一行代码可以实现 >_

2022-09-21 10:45:20 502

原创 常见的敏捷开发框架

读书笔记《敏捷测试:以持续测试促进持续交付》

2022-09-20 13:52:47 869

原创 pytest系列教程——12、用例执行失败后重跑

用例执行一次失败后,可能是由于网络、设备、等等其他因素造成,并不一定就是程序的bug。因此我们需要多执行几次,再好定性它为bug。第三方插件,就提供了失败重跑的能力。

2022-09-08 11:29:00 3709

原创 pytest系列教程——11、用例重复执行、顺序执行、分布式执行

当我有100条脚本的时候,每条执行大概1秒,如果顺序执行完的话,至少100秒。为了缩短测试时间,我们引入了并发执行的插件。当我们想要复现某个偶现的问题时候,重复执行测试脚本当然是最好的选择。不用写个循环去执行,pytest提供了。先对比下我们最开始的例子,我这里写6条case,每条执行一秒。pytest 重 复执行.py -s --count 5。有如下代码,希望它的执行顺序是按照我所设定的场景执行。当我们引入分布式的执行参数,运行参数增加。是几,则就代表几个并行数量。插件实现指定顺序运行。

2022-09-05 17:52:37 1566

原创 pytest系列教程——10、配置文件pytest.ini

addopts参数可以更改默认命令行选项,这个当我们在cmd输入一堆指令去执行用例的时候,就可以用该参数代替了,省去重复性的敲命令工作。如果需要执行多个目录下的,则需要在各个目录中间加入空格。pytest.ini是一个固定文件,也就是说名称不能更改,而且必须存放在项目根目录下。会出现warning的情况,需要在pytest.ini文件对定义的mark进行解释。在第一节的时候,讲过,关于pytest执行的参数命令,比如执行用例的时候加上。一节的时候,就提到,为了解决使用。控制日志文件的输出级别,.......

2022-07-18 17:32:31 2984

原创 一文讲透彻selenium

2004年在 ThoughtWorks 公司,一个叫做 Jason Huggins 为了减少手工测试的工作,自己写了一套 的库,这套库可以进行页面交互,并且可以重复的在不同浏览器上进行重复的测试操作。这套库后来变为了 Selenium Core,为Selenium Remote Control (RC) 和 Selenium IDE提供了坚实的核心基础能力。[1]Selenium Core是第一个工具。但是,由于同源政策,Selenium Core在跨域测试方面遇到了障碍。同源策略禁止JavaScrip

2022-07-08 18:47:22 2562

原创 pytest系列教程——9、 参数化 @pytest.mark.parametrize

当我们写好一个函数进行自测的时候,通常需要多种数据场景进行验证,例如我写了一个乘法计算器函数

2022-07-07 19:06:33 379

原创 pytest系列教程——7、将fixture写入conftest.py

在测试中,我们需要对所有用例做前置处理的时候。就需要把这部分的初始化步骤抽出来,方便统一管理。比如,我们在UI测试的时候,都需要先初始化Selenium Driver。再比如,我们的测试脚本都需要先登录进去后再进行业务操作。那就完全可以使用`conftest.py`,完成对前置步骤的抽离。...

2022-06-23 09:37:21 278

原创 pytest系列教程——6、mark被标记测试

当写的用例比较多的的时候,我们需要对测试用例进行模块划分,比如,抽出一部分作为冒烟用例。部分用例只能在安卓系统上运行,部分用例只能在IOS上运行等等这时候就要用到@pytest.mark的功能,给每条用例打上标签,方便运行...

2022-06-23 09:35:39 743

原创 pytest系列教程——5、跳过测试

对于那些尚未开发完成的测试,最好的处理方式就是略过而不执行测试。按正向的思路,我们只要通过标记指定要测试的就可以解决这个问题;但有时候的处境是我们能进行反向的操作才是最好的解决途径,即通过标记指定要跳过的测试。......

2022-06-07 09:39:15 490

原创 pytest系列教程——4、fixture详解

pytest系列之fixture

2022-06-01 16:38:39 1190

原创 pytest系列教程——3、setup和teardown

setup和teardown是用来处理用例的开始前工作和结束后的工作,pytest提供了多种类型的前置和后置,其中包括:前置后置作用setup_moduleteardown_modulesetup_functionteardown_functionsetup_classteardown_classsetup_methodteardown_methodsetupteardown...

2022-05-20 15:29:48 513

原创 pytest系列教程——2、pytest断言的使用

上一章学习了pytest的基本用法,今天学习一下断言。assert 基本用法unitest单元测试框架中提供了丰富的断言方法,如assertEqual()、assertIn()、assertTrue()、assertIs()等,但是pytest没有。直接使用Python的assert进行断言# MyPytest.pyimport pytestdef inc(x): return x+1# 判断结果不等于5def test_inc_01(): assert inc(3) !=

2022-05-18 11:08:44 930

原创 pymongo写入数据到mongo数据库的脚本

pymongo写入数据到mongo数据库的python脚本# #!/usr/bin/python3from pymongo import MongoClientfrom pymongo import InsertOneimport timeimport jsonfrom dateutil import parserfrom faker import Faker conn = MongoClient("mongodb://用户名: 密码@地址:端口/库名?mechanism=SCRAM-

2022-05-18 09:36:44 495

原创 如何理解python中的yield,挑战全网最透彻的yield讲解教程!

关于yeild 看了忘,忘了看,零零散散的总是理解不透彻。今天彻底记录下,带大家一探 yield到底是什么?关于生成器概念的解释,摘自菜鸟教程解释:在 Python 中,使用了 yield 的函数被称为生成器(generator)。跟普通函数不同的是,生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解生成器就是一个迭代器。在调用生成器运行的过程中,每次遇到 yield 时函数会暂停并保存当前所有的运行信息,返回 yield 的值, 并在下一次执行 next() 方法时从当前位置继续运行。

2022-05-12 21:21:36 3312 2

原创 pytest系列教程——1、pytest快速入门

pytest快速入门简介The pytest framework makes it easy to write small, readable tests, and can scale to support complex functional testing for applications and libraries.官网地址中文翻译地址1、安装pip install pytest2、快速上手新建test.py文件:#test.pyimport pytestdef inc

2022-05-12 17:51:21 481

原创 python最简单的mock方式,使用pook模拟 HTTP 请求结果的库

python最简单的mock方式,使用pook模拟 HTTP 请求结果的库

2022-05-06 10:13:26 561

原创 电脑指定时间关机python 脚本,指定时间点

python 电脑指定时间关机GUI脚本import os,sys,timefrom PyQt5 import QtCore,QtWidgets,QtGuiclass guanji(object): def pageShow(self,page): #设置窗口的位置和大小 page.setGeometry(400,400,400,200) #设置窗口的标题 page.setWindowTitle('Window定时关机工具') #设置窗口的图标

2022-04-25 15:50:25 479

原创 访问github的hosts文件自动更新脚本

因为访问github很麻烦,每次都需要更新dns ,于是写了这个脚本,因为是更改C盘hosts文件,所以执行会自动申请管理员权限:import ctypesimport sysdef is_admin(): try: return ctypes.windll.shell32.IsUserAnAdmin() except: return Falseif is_admin(): import requests from time

2021-10-25 17:10:01 1729 4

原创 基于python的Dubbo接口测试封装

环境python 3.x核心脚本# DubboRequest.py# -*- coding: utf-8 -*-# @Time : 2021/06/02 10:11# @Author : 软件测试技术from Setting import configimport refrom loguru import loggerfrom functools import lru_cachefrom kazoo.client import KazooClientfrom urllib.p

2021-07-27 15:02:05 528

原创 win7部署Docker踩坑纪要

安装信息版本:系统:win7 64如果之前电脑安装过git修改Docker Quickstast的属性, bash.exe 指向之前安装的git的绝对路径。如果Looking for vboxmanage.exe 提示找不到修改start.sh的内容:STEP="Looking for vboxmanage.exe"#if [ ! -z "$VBOX_MSI_INSTALL_PA...

2020-11-14 08:17:00 147

转载 软件测试最常用到的一些Python工具库整理

一、测试框架介绍:进行代码库测试和生成测试数据的库。测试框架 unittest– (Python 标准库) 单元测试框架。 nose– nose 扩展了 unittest 的功能。 contexts– 一个 Python 3.3+ 的 BDD 框架。受到C# – Machine.Specifications的启发。 hypothesis– Hypothesis 是一个基于先进的 Quickcheck 风格特性的测试库。 mamba– Python 的终极测试工具, 拥...

2020-10-23 11:21:05 1159

原创 python3网络爬虫一《使用urllib.request发送请求》

python 爱好者交流群:810306356这里有很多像你一样的伙伴,共同分享学习python的经验!使用urllib在Python2版本中,有urllib和urlib2两个库可以用来实现request的发送。而在Python3中,已经不存在urllib2这个库了,统一为urllib。Python3 urllib库官方链接 https://docs.pytho...

2020-10-23 11:15:36 75014 10

原创 2-5课程 如何找到多个字典中的公共键(key)?

testCase西班牙足球甲级联赛,每轮球员进球统计:第1轮:{"苏亚雷斯":1,"梅西":2,"C罗":1,......}第2轮:{"苏亚雷斯":2,"C罗":2,"贝尔":1,......}第3轮:{"苏亚雷斯":1,"贝尔":2,"内尔马":1,......}... ...统计前N论,每场比赛 都有进球的球员。from random import randint,samp...

2020-06-22 12:33:00 104

原创 2-3课程 如何根据字典中值得大小,对字典中的项排序

testCase某班英语成绩以字典形式存储为:{'LeiLei':90,'kim':88,......},根据成绩高地,计算学生排名。from faker import Faker from random import randintfaker =Faker('zh')#随机构造30个学生名称和成绩studentsScore = {faker.name():randint(5...

2020-06-22 12:14:00 120

原创 2-3课程 比较:统计序列中元素的出现频度

test_1某随机序列 [1,2,3,4,12,123,44,2,342,123,4,66,35,.....]中,找到出现次数最高的3个元素,他们出现的次数分别是多少?方法1from random import randintdata = [randint(1, 20) for _ in range(30)]c = dict.fromkeys(data, 0)for i i...

2020-06-22 11:55:00 104

原创 批量将图片转为圆角

将本地保存的图片全部转为圆角,代码如下:from PIL import Image, ImageDrawdef circle_corner(img, radii): # 画圆(用于分离4个角) circle = Image.new('L', (radii * 2, radii * 2), 0) # 创建黑色方形 # circle.save('1.jpg','JPE...

2020-06-10 14:38:00 434

原创 软件测试最常用的sql命令大全

整理了一下软件测试者会用到的Top10必须掌握的sql命令增删改查:INSERT INTO table_name (column1,column2,column3,...)VALUES (value1,value2,value3,...);DELETE FROM table_name WHERE id=1;UPDATE table_name SET column1=value1,column2=value2,...WHERE some_column=some_value;select * from

2020-06-02 17:47:42 3007

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除