- 博客(102)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 使用fiddler实现苹果ios手机抓包
Fiddler是一个强大的抓包工具,可以通过它抓取、查看和调试PC端、手机终端和远程服务器之间的http/https等通信。Fiddler没有手机客户端,都是安装在PC上,要实现对手机上的程序抓包,则需要对PC上的Fiddler和手机端做一些配置。此文介绍如何使用fiddler实现苹果手机抓包,具体步骤如下:一、对PC端的Fiddler进行配置1、Fiddler默认只捕获http会话而不抓取HTTPS报文,所以我们要先允许捕获HTTPS。操作步骤:①打开Fiddler,点击Tool-> O
2021-03-16 14:06:55
73171
35
原创 什么是Pytest及Pytest常用方法
什么是Pytest?一、什么是pytest二、Pytest的特点三、Pytest以及常用插件安装四、编写规则五、Pytest之收集用例及命令行参数1、用例收集规则2、命令行参数六、跳过用例七、Pytest的前置和后置方法1、Pytest可以集成unittest实现前置和后置2、Pytest前置和后置八、pytest的ini配置文件1、pytest.ini的放置位置2、pytest.ini的作用九、python编程之ini文件处理-configparser模块应用1、configparser模块是什么2、co
2021-12-12 13:07:52
7910
1
原创 软件测试面试题总结
软件测试面试题总结1、如何提交高质量的bug?2、浏览器的兼容性测试怎么测?3、单元测试、集成测试、系统测试、验收测试的区别和联系是什么?4、HTTP协议中的“长连接”和“短连接”的区别?5、HTTP协议与TCP/IP协议的关系6、Linux下常用的监控命令有哪些?7、测试环境如何搭建?8、Get 和 Post请求的区别9、git和svn请求的区别1、如何提交高质量的bug?要提交高质量的bug,我们可以注意以下几点:①bug的唯一性:一般来说,一个bug只记录一个问题或一类问题。②bug的可重现性
2021-12-11 11:52:17
1726
原创 python3 之 使用xlrd和xlwt模块对excel数据进行读取写入操作
python3 之 使用xlrd和xlwt模块对excel数据进行读取写入一、什么是xlrd模块和xlwt模块二、如何安装xlrd模块和xlwt模块三、excel表格准备四、对excel表进行读写操作1、使用xlrd模块读取excel文件1.1 、遇到问题:excel表中是日期格式的单元格,输出的是浮点数1.2、如何解决1.2.1、方式一:使用xlrd 的 xldate_as_datetime 来处理1.2.2、方式二:使用xlrd 的 xldate_as_tuple 来处理2、使用xlwt模块向excel
2021-11-13 12:40:30
13459
2
原创 python 读取xlsx文件报错,解决方法 ( xlrd 2.0.1 仅支持 .xls 文件)
一、问题:python 读取xlsx文件报错,报错信息如下:为什么会报错?那是因为xlrd 2.0.1 仅支持 .xls 文件。二、解决方法:1、确认自己安装的xlrd版本:可以先用以下命令看看自己安装的xlrd是什么版本:pip show xlrd如果安装的xlrd 是 2.0.1 版本,且您所用的excel文件格式为.xlsx ,那么就有可能会遇到以上的报错。2、如何解决如果不想降低xlrd(2.0.1 )的 版本,那么您可以直接修改excel文件的格式为 .xls 即可。(一
2021-11-06 15:32:22
13145
7
原创 pytest框架实现参数化-params参数化 和 parametrize 参数化
pytest框架实现参数化-params参数化 和 parametrize 参数化一、@pytest.fixture(params=参数值) ,实现参数化二、@pytest.mark.parametrize()方法,实现参数化一、@pytest.fixture(params=参数值) ,实现参数化Fixture参数之params参数可实现参数化,参数值,可以为list和tuple,或者字典列表,字典元祖等。@pytest.fixture(params=参数值)# 参数值,可以为list和tuple,
2021-11-06 13:31:08
1218
原创 python3 编程之ini配置文件处理-configparser模块应用
python编程之ini文件处理-configparser模块应用一、configparser模块是什么?二、数据准备三、configparser模块基本使用1、使用configparser模块读取 ini 配置文件2、使用configparser模块写入 ini 配置文件2.1 写入 ini 配置文件(字典形式)2.2 写入 ini 配置文件(方法形式)3、使用configparser模块修改 ini 配置文件4、使用configparser模块删除 ini 配置文件一、configparser模块是什
2021-10-24 12:06:09
752
1
原创 python3 之 sys.stdout
当我们在程序中print东西时,其实就相当于我们把东西塞进sys.stdout管道里面。平时所用的 print() 相当于 sys.stdout .write() 。举例:实现进度条功能。import sys, timefor i in range(10): sys.stdout.write("#") # print("#", end="") # 相当于print,end=""表示不换行 time.sleep(1) sys.stdout.flush()输出
2021-09-21 21:35:05
731
原创 python3之 os模块
python3之 os模块一、os模块二、罗列os内置的一些方法一、os模块os模块是与操作系统交互的一个接口,通过该接口,可以调用系统的一些命令。二、罗列os内置的一些方法#! /usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2021/9/20 13:45# @Author : wsh# @File : os_test.py# os模块是与操作系统交互的一个接口import osos.getcwd() # 获
2021-09-20 14:04:15
385
原创 python3 运行行报错 AttributeError: module ‘random‘ has no attribute ‘randint‘
今天在运行文件 random.py文件时报错了 AttributeError: module ‘random’ has no attribute ‘randint’。random.py 文件如下:import randomdef v_code(): code = "" for i in range(5): num = random.randint(0, 9) char = chr(random.randint(65, 90)) add
2021-09-20 13:25:03
5000
原创 python3 之 模块 和 包
python3 之 模块一、什么是模块1、模块的定义2、模块的作用3、模块的分类二、模块导入的方法1、import 语句一、什么是模块1、模块的定义在python中,我们把一个.py文件 就称之为 一个模块。为了编写可维护的代码,我们把很多的函数进行分组,分别放到不同的文件里,这样每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式,来大大提高代码的可维护性。2、模块的作用模块的作用 就是 大大提高代码的可维护性。3、模块的分类模块一般有三种:①python的标准库,比如 sy
2021-09-05 16:22:09
519
原创 python3 之高阶函数
python3 之高阶函数一、定义二级目录三级目录一、定义什么是高阶函数?满足以下任意一个条件,都可以称之为高阶函数:1、函数接收的参数是一个函数名;作用:在不修改函数的源代码的前提下,可以为函数添加新功能。不足:会改变函数的调用方式。2、函数的返回值是一个函数名;作用:不修改函数的调用方式。不足:不能为函数添加新功能。二级目录三级目录...
2021-08-22 22:52:55
242
原创 Git 如何将远程仓库的项目克隆到本地及如何推送到远程仓库(Git常用的命令)
Git 如何将远程仓库的项目克隆到本地及如何推送到远程仓库一、将远程仓库的项目克隆到本地二、查看分支三、创建分支四、切换、合并分支五、add将文件添加到暂存区- commit 提交文件 - pull 拉取远程分支最新代码 - push 推送到远程分支一、将远程仓库的项目克隆到本地1、当仓库地址支持 SSH 方式时:$ git clone git@gitee.com:xxx/python_study.git2、当仓库地址支持 HTTPS 方式时:$ git clone https://gitee
2021-08-21 14:43:18
9504
原创 Git如何查看本地已登录的用户账号及切换账号
Git如何查看已登录的用户账号及切换账号一、查看本地已登录的账号信息1、查看本地已登录的账号2、查看本地已登录的账号绑定的邮箱二、切换本地登录用户1、切换本地登录的账号2、切换本地登录的账号绑定的邮箱一、查看本地已登录的账号信息1、查看本地已登录的账号git config user.name2、查看本地已登录的账号绑定的邮箱git config user.email二、切换本地登录用户1、切换本地登录的账号git config --global user.name "用户名"2、切换
2021-08-21 11:38:59
21771
原创 Python3 之 装饰器
Python3 之 装饰器一、含义二、原则三、实现方式一、含义装饰器:本质上就是就是一个返回函数的高阶函数,其作用是为其他函数添加附加的功能,在代码运行期间动态增加功能的方式,称之为“装饰器”(Decorator)。装饰器 = 高阶函数+函数嵌套+闭包二、原则1、不修改被修饰函数的源代码。2、不修改被修饰函数的调用方式。三、实现方式假如,现在我们要得到运行一个函数所花费的时间,我们应该如何设计程序呢?如果是一个函数,那么我们可以直接在函数执行前后获取当前时间,再相减,就得出运行时间。imp
2021-08-15 22:28:42
476
原创 python3 之 生成器的send()方法
在上一篇文章里我们学习到了用__next__()方法去遍历生成器,且函数中的yield 标识符 左侧是没有 变量= 的。类似于这样:文章地址:https://blog.csdn.net/weixin_40608713/article/details/119489700?spm=1001.2014.3001.5501# 方式二:使用生成器def index_words(text): if text: yield 0 # 左侧没有 赋值给一个变量 for inde
2021-08-15 10:19:07
564
原创 python3之 生成器
python3之 生成器一、什么是生成器?二、生成器的基本格式三、练习题一、什么是生成器?我们知道,通过“列表生成式” 可以直接创建一个列表,但是列表生成式 存在一个缺陷:当列表生成式的数值非常大时,会出现运行缓慢,内存不足,若足够大,将造成计算机死机。一次性创建出一个列表,如果数值很大,就会占用很大的存储空间,而假如我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间就都白白浪费了。那么是否有一种可以不用一次性创建,而是根据需要的时候再去推算出来,这样就不会占用很大的内存空间。而“生成器”
2021-08-07 22:22:00
490
原创 python3之 列表生成式
python3之 列表生成式一、什么是“列表生成式”?二、举例子一、什么是“列表生成式”?列表生成式:是Python内置的非常简单却又非常强大的可以用来创建List 的生成式。(一)基本格式:① 不带筛选条件:[表达式 for 变量 in 序列]②带筛选条件(放在for 后面, if 是一个筛选条件,不能带else):[表达式 for 变量 in 序列 if 条件]③带if… else表达式(放在for 前面, 必须带else):[表达式 if ··· else ··· for 变量
2021-08-07 13:55:49
744
1
原创 pycharm如何设置新建一个.py文件默认代码及内容
pycharm如何设置新建一个.py文件默认代码及内容一、准备要默认的代码和内容二、设置三、新建一个python文件一、准备要默认的代码和内容#! /usr/bin/env python# -*- coding: utf-8 -*-# @Time : ${DATE} ${TIME}# @Author : wsh# @File : ${NAME}.py二、设置步骤:1、点击 File ,下拉选项中选择 Settings2、在settings 中,找到 Editor &g
2021-08-04 22:01:41
1975
原创 Python之文件处理
Python之文件处理一、文件操作1、计算机基础知识2、操作文件的流程二、打开文件的模式三、操作文件的方法四、文件内光标移动五、文件的修改一、文件操作1、计算机基础知识计算机系统分为:计算机硬件,操作系统,应用程序(软件)三部分。我们用python或其他语言编写的应用程序若想要把数据永久保存下来,那么必须要保存于硬盘中,这就涉及到应用程序要操作硬件。而应用程序是无法直接去操作硬件的,此时就需要用到了介于硬件和软件之间的“操作系统”(中间人)。操作系统把复杂的硬件操作封装成简单的接口给用户或者应用
2021-08-01 14:32:06
197
原创 迭代器协议 及 python中强大的for循环机制
迭代器协议 及 python中强大的for循环机制一、什么是迭代器协议二、python中强大的for循环机制1、for循环的本质是什么?2、为什么要用for循环?一、什么是迭代器协议迭代器协议:是指,对象必须提供一个__next__()方法,执行该方法要么返回迭代中的下一项,要么就引起一个StopIteration异常,以终止迭代。(只能往后走,不能往前退)协议:是一种约定。可迭代对象实现了迭代器协议,python的内部工具,如for循环、sum函数、min函数、max函数等都是遵循迭代器协议访问对象
2021-07-24 21:39:44
437
4
原创 python3 之常用内置函数
python3之其它内置函数一、filter函数二、map函数三、reduce函数四、zip函数五、max() 和 min() 函数一、filter函数二、map函数三、reduce函数四、zip函数描述:zip() 函数用于将可迭代的对象(如列表、元组、字符串)作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的内存对象,这样做的好处是节约了不少的内存。我们可以使用 list() 转换来输出列表。如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号
2021-07-17 21:14:30
543
4
原创 python3 之 匿名函数
python3 之 匿名函数1、匿名函数的含义2、匿名函数的格式3、匿名函数的常用用法1、匿名函数的含义顾名思义就是没有函数名的函数。一般用来解决功能简单需求的一句话函数。2、匿名函数的格式lambda 参数: 返回值# 多个参数的时候,用英文逗号隔开举例:# 匿名函数 lambda# 基本的语法结构# func 是一个内存地址,要运行它,需要加个()去调用它; x 表示形参;x+1 相当于函数return 的值;func = lambda x: x+1print(func(10))
2021-07-10 23:01:31
544
原创 Python基础之函数-练习题
Python基础之函数-练习题一、写函数,计算传入字符串中【数字】、【字母】、【空格] 以及 【其他】的个数二、写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5一、写函数,计算传入字符串中【数字】、【字母】、【空格] 以及 【其他】的个数1、方法一:遍历字符串,将字符转换成ASCII码(使用方法 ord(a) 转换成ASCII码),再去判断字符是数字、字母、空格。在ASCII码中:48~57代表数字0 ~ 9 ;97 ~ 122代表小写字母a ~ z;65 ~ 90 代表大写 A
2021-06-27 20:31:49
838
1
原创 递归函数及其特性
递归函数一、什么是递归函数二、递归函数的特性一、什么是递归函数在函数的内部是可以调用其它函数的包括自己。如果一个函数在内部调用自身本身,这个函数就是递归函数。举例一:def calc(n): if int(n/2) == 0: return n n = int(n/2) re = calc(n) return recalc(10)递归过程是这样的:int(10/2)---> int(5/2)---> int(2/2)--->
2021-06-20 17:54:48
2788
原创 MySQL 8 + Navicat for MySQL安装步骤
Mysql+Navicat for Mysql安装步骤一、Mysql安装1、软件准备2、环境及文件配置①新建Data文件夹和 my.ini文件,且配置初始化的my.ini文件:②配置环境变量:3、初始化Mysql + 安装Mysql服务 + 启动mysql服务①以管理员的身份打开cmd, 打开后进入mysql的bin目录②安装Mysql服务③启动Mysql服务④设置Mysql的root密码二、Navicat for Mysql安装1、软件准备及安装2、连接数据库一、Mysql安装1、软件准备途径一:M
2021-06-19 13:53:36
11810
18
原创 Mysql 8安装报错Can‘t create directory问题解决
今天在安装Mysql 8 的过程中,在初始化mysql的时候执行mysqld --initialize-insecure --user=mysql遇到一个报错 mysqld: Can't create directory 'D: oftware\mysql-8.0.25-winx64\mysql-8.0.25-winx64\data\' (OS errno 2 - No such file or directory)。在网上搜了一遍,终于找到问题所在。其实就是my.ini文件出了问题。mysql 8
2021-06-19 11:55:10
13107
9
原创 局部变量和全局变量的区别
局部变量和全局变量的区别:在子程序中定义的变量称为局部变量;在程序的一开始定义的变量为全局变量;当全局变量和局部变量同名时,在定义局部变量的子程序内,局部变量起作用,在其它地方全局变量起作用。(1)例子一:# 全局变量name = 'lisi'def change_name(): print('你的名字:', name)change_name()输出的结果:你的名字 lisi(2)例子二:# 全局变量name = 'lisi'def change_name
2021-06-16 23:15:19
725
原创 python基础之函数
python基础之函数一、函数的定义和使用1、返回值2、参数一、函数的定义和使用def 函数名(参数): ... 函数体 ... 返回值函数的定义主要有如下要点:def:表示函数的关键字函数名:函数的名称,日后根据函数名调用函数函数体:函数中进行一系列的逻辑计算,如:发送邮件、计算出 [11,22,38,888,2]中的最大数等…参数:为函数体提供数据返回值:当函数执行完毕后,可以给调用者返回数据。1、返回值函数是一个功能块,该功能到底执行成功与否,需要
2021-06-14 23:18:26
252
2
原创 Python初级-基本数据类型 练习题实战
Python初级练习题实战题目:"""功能要求:要求用户输入总资产,例如:2000显示商品列表,让用户根据序号选择商品,加入购物车购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。附加:可充值、某商品移除购物车goods = [ {"name": "电脑", "price": 1999}, {"name": "鼠标", "price": 10}, {"name": "游艇", "price": 20}, {"name": "美女", "pric
2021-06-14 15:15:49
1398
5
原创 Python3 内置random模块常用方法(持续更新)
内置random模块常用方法一、方法汇总二、方法的使用1、randrange()2、random()3、randint()4、uniform()5、sample()6、shuffle()7、choice()8、choices()一、方法汇总Python有一个random内置模块,可用于生成随机数。要使用其内置函数,需要先导入random模块。以下是汇总常用的几个方法:方法描述randrange()返回给定范围之间(左闭右开)的随机数random()返回介于[0,1)之间的
2021-05-23 20:05:08
512
1
原创 Python字符串之练习题实战
Python字符串之练习题实战一、练习1:将用户输入的内容以表格的形式展示二、练习2:制作4位随机验证码,校验时,不区分大小写一、练习1:将用户输入的内容以表格的形式展示题目:循环提示用户输入用户名、密码、邮箱。要求:①用户输入的不超过20个字符,如果超过则只有前20个字符有效;②如果用户输入q或者Q,表示不再输入,将用户输入的内容以表格的形式展示;参考答案:#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time: 2021/5/22 下午
2021-05-23 15:52:46
818
原创 Python3 之 range()函数
@[TOC](Python3 之 range()函数)一、说明Python3 range() 函数返回的是一个“可迭代对象”(类型是对象,而不是迭代器),也不是列表类型, 所以打印的时候不会打印列表。Python3 list() 函数是对象迭代器,可以把range()返回的可迭代对象转为一个列表,返回的变量类型为列表。>>> range(5)range(0, 5)>>> list(range(5))[0, 1, 2, 3, 4]二、语法range(s
2021-05-23 11:04:32
1329
原创 Python基础学习之(二)基本数据类型【持续更新】
Python基础学习之(二)一、基本数据类型1、数字2、布尔值3、字符串3.1、字符串遍历3.2、字符串去除空格3.3、字符串替换3.4、查找子字符串3.5、字符串的切片一、基本数据类型1、数字2、布尔值3、字符串字符串的元素不能被修改,而且元素类型比较单一。3.1、字符串遍历#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time: 2021/5/9 下午 9:16# @File: practice2.py# @Software: P
2021-05-20 22:44:56
343
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人