- 博客(167)
- 收藏
- 关注
原创 python:pyinstaller打包可执行文件
今天先聊到这里吧,以上总结或许能帮助到你,或许帮助不到你,但还是希望能帮助到你,如有疑问、歧义,直接私信留言会及时修正发布;然后会覆盖原来的.spec配置文件和.exe可执行文件,并生成新的。的操作和不加的操作是一样的,不加是因为默认执行的也是。最终,在dist文件夹中即看到.exe可执行文件。-D 创建一个包含可执行文件(默认)的文件夹包。微信搜索公众号:就用python。一直在努力,希望你也是!执行完成后,会直接生成。文件(如:第三方库,
2022-09-13 19:18:15
1771
4
原创 性能测试:工具篇:jmeter-命令行使用
jmeter在Windows或macOS启动都会有一个GUI界面的,一般GUI界面都用于脚本的编写和调试。通常对编写好和调试更好的脚本会放在服务器上利用命令来运行。
2022-08-29 18:52:03
2129
原创 python:初识 multiprocessing - 进程
:一个进程池的例子: 首先引入进程池类 其次定一个函数,返回的是位置参数相乘的结果 然后定一个进程池对象,并设置运行5个进程;(它会将可迭代对象分割为许多块,然后提交给进程池。)调用并执行子进程 最后关闭进程运行结果::一个简单的进程例子: 首先引入进程类 其次定一个函数,返回的是位置参数相乘的结果 然后创建一个进程对象,传入要执行的函数和函数参数;启动进程 最后,它主要是控制父进程,等待子进程运行完成后结束:一个简单的多进程例子:和单进程的区别就是这
2022-06-05 17:50:39
414
1
原创 性能测试-工具篇:jmeter - If Controller / Once Only Controller
(如果控制器),可以通过条件来控制此控制器下的元件是否运行, 如果取消选中将条件解释为变量表达式,控制器将在内部使用 来进行条件判断,但是会影响非常大的性能损失。也是官方不推荐的,在这里了解即可,想深入的可百度一下查阅资料。至于如何生成表达式,中的函数助手中提供了两个函数,专门用来生成表达式的: (仅一次控制器) 告诉 此控制器下的元件只执行一次,常用场景就是登录操作,执行一次即可截图例如:登录一个用户,然后访问用户列表,如果登录成功且获取成功,则请求用户列表 今天先聊到这里吧,以上总结或许能帮助
2022-06-03 18:48:10
348
原创 python:Fastapi - 登录接口BUG修改
今天主要是唠嗑下登录接口的两个,哈哈……真实印证了一句话,一行代码除了十个。首先,看下代码出错的地方:函数主要是验证数据查询登录账号,然后进行密码比对是否相等。问题- 出错代码:因为这个函数是专门验证密码是否相等,如果相等就返回,否则就是,然后因为多加了一个,所以这个条件就不成立了,那就直接返回而登录接口中又有一个非真判断,因为一直是所以这个判断也失效了这种情况就会出现密码错误,也可以登录的情况,这也是在写代码的不细心导致的,测试也没站在测试的角度进行测试。问题- 出错代码:这一段是
2022-06-02 11:37:52
710
原创 python:Fastapi - 元数据和文档 URL
前面的用户指南已经可以满足开发简单的接口了,但是开发的接口只有自己知道,为了项目组的前端和测试都能知道,框架引入了来进行展示。参数注释 : 上述是一些常规的配置信息,现在在原来的基础上增加标签元数据配置 :然后我们看下是什么样子的(这里我是单独新建了一个文件来存储) :最后,不要忘记在接口路径中定义标签,取中的值(示例:) : 文档默认的的三个,要是默认值,要么给指定路径,不可以给,否则就会访问不了文档页面,这是因为所有的数据都是基于来生成的。例如:我们也可以给文档连接修改
2022-06-01 20:41:42
827
原创 性能测试-工具篇:jmeter - Aggregate Report
监听器-Aggregate Report(聚合报告)聚合报告为您测试中的每个不同名称的请求创建一个表格行。对于每个请求,它汇总响应信息并提供请求计数、最小值、最大值、平均值、错误率、吞吐量(请求/秒)和每秒千字节吞吐量。一旦测试完成,吞吐量就是整个测试期间的实际通过量。在聚合报告中各个响应的时间不超过用户的要求即为合格。例如:用户要求90%的响应时间不能超过2 s,大于2 s就是不合格。注释信息:Label:显示元件名称,如设置了名称就显示名称 Samples:每个接口请求的...
2022-05-25 21:07:23
490
原创 性能测试-工具篇:jmeter - View Restults Tree
监听器-View Restults Tree(查看结果树)查看结果树显示所有请求响应的树,允许您查看任何请求的响应。除了显示响应之外,您还可以查看获得此响应所需的时间,以及一些响应代码。请注意,请求面板仅显示 JMeter 添加的标头。它不显示任何可能由 HTTP 协议实现添加的标头在查看结果树有几种查看响应的方法,可以通过左侧面板底部的下拉框进行选择Text:默认文本视图显示响应中包含的所有文本。 Regexp Tester:仅适用于文本响应 Boundary Extract...
2022-05-25 19:43:47
334
原创 性能测试-工具篇:jmeter - CSV Data Set Config
CSV Data Set Config 用于从文件中读取行,并将它们拆分为变量。它非常适合处理大量变量,并且对于使用“随机”和“唯一值”进行测试也很有用。信息注释:Filename:文件名,包含文件路径 File encoding:文件编码,一般是UTF-8 Variable Names(comma-delimited):变量名称,即是文件中每列参数名称,如果有多个则用逗号隔开 Ignore first line(only used Variable Name is not em...
2022-05-24 18:54:01
772
原创 性能测试-工具篇:jmeter - Header管理器
Header Managers允许您添加或覆盖 HTTP 请求标头。 JMeter 现在支持多个 Header Managers。如果有多个标头,则在运行时会进行合并,如遇相同参数则会进行覆盖。所以你可以设置一组默认标头,应用于全局。请注意,标头如有的空值则不会删除现有标头,它只是替换其值。 参数注释:Name:名称,同字面意思 Comments:注释,同字面意思 Add:向标题表添加一个参数。 Add from Clipboard:从剪切板添加 Delete:删...
2022-05-24 18:53:49
2728
原创 性能测试-工具篇:jmeter - Cookie管理和默认请求
HTTP Cookie Manager(HTTP Cookie管理器)Name:名称。可自定义 Comments:注释,可自定义Options:Clear cookies each iteration?:如果选中,则每次执行主线程组循环时都会清除所有服务器定义的 cookie。GUI 中定义的任何 cookie 都不会被清除。 Use Thread Group configuration to control cookie clearing:使用线程组配置来控制cookie清除(...
2022-05-24 18:53:27
494
原创 性能测试-工具篇:jmeter 线程组
线程组线程组定义了将针对您的服务器执行特定测试用例的用户池。在线程组GUI中,您可以控制模拟的用户数(线程数)、加速时间(启动所有线程所需的时间)、执行测试的次数,以及可选的启动并停止测试时间。如使用调度程序时,JMeter运行线程组,直到达到循环数或达到持续时间/结束时间 - 以先发生者为准。请注意,仅在样本之间检查条件;当达到结束条件时,该线程将停止。JMeter不会中断正在等待响应的采样器,因此可以任意延迟结束时间。名称:同字面意思,可自定义注释:同字面意思,可自定义...
2022-05-24 18:53:13
1212
原创 python:Fastapi - 依赖项中使用上下文管理器
什么是上下文管理器上下文管理器是您可以在with语句中使用的任何 Python 对象例如:您可以使用with关键字读取文件withopen("./file.txt")asf:data=f.read()print(data)运行时,open("./file.txt")会创建一个称为上下文管理器的对象。当with块完成时,它确保关闭文件,即使有异常。如自定义上下文管理器,那类中必须要有下面两个魔术方法def__enter__(sel...
2022-05-12 19:33:12
860
原创 python:Fastapi - BackgroundTasks (后台任务)
今天主要说后台任务,它主要就是在返回响应后运行任务。对于需要在请求之后发生的操作很有用,但客户端实际上不必在接收响应之前等待操作完成。这包括,例如:电子邮件发送的通知,需要连接电子邮件服务器 很慢的数据文件处理,因文件大写入时太慢使用BackgroundTasks首先,导入BackgroundTasks其次在路径操作函数中定义一个参数,其类型声明为:BackgroundTasksfromfastapiimportBackgroundTasks,FastAPIap...
2022-05-11 19:48:54
6072
原创 python:Fastapi - 基于jwt生成token和密码加密
上篇文章开发了两个接口,但是针对注册的接口密码没有加密,针对登录接口的返回token没有加密和失效时间等等…那么本篇主要叙述,针对这个两个接口的处理,首先是基于python-jose库来生成token,再基于passlib库来做密码加密和解密处理。记得要先安装依赖库:pipinstallpasslibpipinstallpython-jose…..好了,话不多说,下面开始进入正文…..sc_app/dependencies.py#-*-coding:utf...
2022-05-11 00:46:19
3324
原创 python:Fastapi - 初识接口开发
前面文章聊了工程目录,如果掌握了前面一些列文章就可以进行简单的接口开发了。后续文章主要是唠接口的开发和fastapi框架的进阶阶段,那么这次是开发了注册和登录两个接口redis/sc_app/redispy.pyimportredis__all__=["redispy"]classRedispy:def__init__(self):self._connect=redis.Redis(host...
2022-05-08 20:00:16
1589
原创 性能测试:nGrinder 基本使用
nGrinder 是一个压力测试平台,使您能够同时执行脚本创建、测试执行、监控和结果报告生成器。开源 nGrinder 通过消除不便和提供集成环境,提供了进行压力测试的简便方法总共三种运行方式:作为可执行文件运行 在Tomcat上运行 在Docker上运行Grinder 由两个主要组件组成:controller(控制器):一个 Web 应用程序,使性能测试人员能够创建测试脚本并配置测试运行。 agent(代理):创建负载的虚拟用户生成器。在 " Docker " 上运行首先安装co
2022-05-07 19:12:33
798
原创 python:sqlalchemy-快速开始
#一、声明模型首先我们定义了模块级结构,这些结构将形成我们将从数据库中查询的结构。这种结构称为声明性映射,讲白了其实就是SQL表中存在的元数据。fromsqlalchemyimportColumnfromsqlalchemyimportForeignKeyfromsqlalchemyimportIntegerfromsqlalchemyimportStringfromsqlalchemy.ormimportdeclarative_basefromsq...
2022-05-01 16:29:47
2686
原创 python:Fastapi - 更大的应用 - 多个文件
书接上文,上篇文章唠了SQL(关系)数据库,今天主要是唠下多文件,也就是对应的工程目录的应用开发。工程目录概述admin - 文件夹是作者规划的后台接口,可忽略 model - 文件夹是主要存放数据库表 routers - 文件夹也是作者规划的存放接口的,后续的实践接口也写在这里 schemas - 文件夹是存放的一些接口的模型 sql - 文件夹是存放一些基于sqlalchemy的查询方法 databases.py - 文件是数据库的连接操作,这里是使用的sqlite.db dep
2022-04-22 19:33:59
2505
原创 python:Fastapi - SQL(关系)数据库
Fastapi可关联市场的主流数据库,下面主要是结合sqlalchemy操作mysql数据库。当然你也可以使用SQLite,因为它使用单个文件并且Python具有集成支持。操作起来更简单,坑也少一点。话不多说,下面进入正题首先得要先安装:1.pipinstallsqlalchemy工程目录中新建sql_app包,可以理解是一个小的数据库操作包1.sql_app2.├──__init__.py3.├──crud.py4.├──...
2022-03-27 20:01:59
3351
1
原创 jmeter:JMeter分布式部署及踩坑解决
简单唠一唠最近要做性能测试了,主要是业务并发的测试牵扯到大并发的话,一台client机器是会运行宕机的,今天就唠唠jmeter的分布式测试本次是环境的搭建,踩坑纪实。下面进入正文部分JMeter分布式环境搭建环境搭建 - 第一步:是要先在本机部署java和jmeter的运行环境java最好下载jdk-8u321-windows-x64 jmeter下载新版即可,如果想保证稳定可退两个版本下载上述两个环境搭建的搭建可以百度一下,教程特别多。环境搭建好以后,记得去验证下jav
2022-03-25 20:19:52
2713
原创 python:Fastapi - Middleware(中间件)
简单唠一些最近有些忙,时间不怎富裕,学习总结也落下了,今天总结了一些,咱们继续书接上文。继上篇文章主要唠了安全性的一部分知识(后续再补一些知识),今天主要聊下中间件。FastAPI中的 “中间件” 是一个函数,它在每个请求被特定的路径操作处理之前,以及在每个响应返回之前工作。中间件中间件(英语:Middleware),又译中间件、中介层,是一类提供系统软件和应用软件之间连接、便于软件各部件之间的沟通的软件,应用软件可以借助中间件在不同的技术架构之间共享信息与资源。而在Fastapi
2022-03-22 19:55:48
4105
1
原创 python:Fastapi - 安全性-OAuth2中的password流
简单絮叨一些前面一篇文章唠了依赖项,今天主要唠下安全性。更多的就是身份认证或者授权等问题,一听这词就感觉很复杂,fastapi提供了专门处理安全性的工具安全性使用密码和 Bearer 的简单 OAuth2此处使用的是OAuth2中的password流password流是 OAuth2 中定义的一种方式(流),用于处理安全和身份验证。OAuth2 指在使后端或 API 可以独立于对用户进行身份验证的服务器。鉴于这个鬼玩意比较生疏,针对代码一段一段且一步一步的唠:fake_u
2022-03-03 18:52:35
1428
1
原创 python:Fastapi - 依赖项操作
简单絮叨一些前面一篇文章唠了异常处理和路径操作配置,今天主要唠下依赖项Fastapi中提供了依赖注入系统,怎么理解呢?其实就是本来我是要接收很多参数来构造对象,现在我只接收一个已经实例化的对象。网上很多的抽象解读,感觉看多了,都emo了,虽说上述总结的一句话比较狭义,但是并没有偏多少,主旨是存在的。依赖注入常用于以下场景:共享业务逻辑(复用相同的代码逻辑) 共享数据库连接 实现安全、验证、角色权限 等……上述场景均可以使用依赖注入,将代码重复最小化。依赖项初识依赖
2022-03-03 11:28:44
1075
原创 python:Fastapi - 异常处理、路径配置及JSON编码器
简单絮叨一些上篇文章主要唠了表单和文件上传等功能,这次主要是唠下异常处理、路径操作配置和JSON兼容编码器等。异常处理就是针对某些情况下,需要向客户端返回错误提示。路径操作配置就是路径操作装饰器支持多种配置参数。JSON兼容器是在某些情况下,您可能需要将数据类型转换为与 JSON 兼容的类型等,然后存储起来。处理错误使用HTTPException某些情况下,需要向客户端返回错误提示。需要向客户端返回错误提示的场景主要如下:客户端没有执行操作的权限 客户端没有访问资源的权限
2022-03-01 17:11:10
2607
原创 python:Fastapi - 请求表单与文件
简单絮叨下,如有问题请私信上篇文章主要唠了接口响应的一些东西,今天主要是唠Form表单和文件处理。表单可以理解为数据采集,而文件处理就是在获得客户端的文件进行数据返回或者直接上传服务器。fastapi框架中提供了操作表单的Form和处理文件的File,其参数的方式与 Body 和 Query一样。表单数据From它接收的不是json,而是表单字段,使用表单需要安装pip install python-multipart(Python 的流式多部分解析器)fromfastapiimp..
2022-02-28 17:58:11
1709
1
原创 python:Fastapi - 响应模型和状态码
简单絮叨一下前面聊Cookie和Header一些事情,今天主要聊聊关于响应的一些事情响应就是接口的返回值,及状态码等,这个是必须要有的。其返回的数据主要是用于前端调试页面和测试进行测试的参考。响应模型fastapi只需要在任意路径(@app.get()、@app.post()、@app.put()、@app.delete())操作中使用response_model 参数来声明用于响应的模型。注意点: response_model是「装饰器」方法(get,post 等)的一个参数。不像之前
2022-02-24 20:43:18
2523
原创 python:快速启动-android稳定性测试
快速启动-android稳定性测试前置条件:需安装adb环境、需安装adb环境、需安装adb环境,重要事情说三遍项目简介:结合字节跳动提供的开源工具Fastbot_android, 进行封装了基础版的稳定性测试,只需要数据线连接电脑,并确定在cmd中输入adb devices,看到了手机设备号,即可运行命令。修改日志第二版主要是优化读取命令的方式、简化了命令行输入命令、增加自定义元素点击及工程目录的创建安装包pipinstallfastrun网站简介https://py..
2022-02-23 18:38:17
1954
原创 python:Fastapi - Cookie 和 Header
简单唠叨下前面唠了一些关于请求体的一些事情,这次主要唠下cookie和header的东西,cookie、header和Path、Query一样都是继承公共的Param类,传参的一些参数都差不多是一样的。区别的就是Path、Query是在postman中的Param中放入参数进行请求,而cookie、header则是在postman中的Headers中放入参数进行请求Cookie参数导入 Cookie声明 Cookie 参数的结构与声明 Query 参数和 Path 参数时相同。第一个值是
2022-02-23 17:22:40
1079
原创 python:app稳定性测试工具
工作中因要测试app的稳定性,市场上多用于monkey进行稳定测试,而字节跳动开源了一个基于monkey的稳定性测试工具Fastbot,使用了一阶段,超级棒.因为每次都要去输入一堆命令,故写了一个第三方包,主要功能是基于持续几分钟的点击效果首先是构建包创建一个包的工程目录:#\launchProject\setup.pyfromsetuptoolsimportsetup,find_packageswithopen("README.md","r",encodin...
2022-02-17 21:18:54
6600
原创 python:Fastapi 请求体-嵌套模型
请求体 - 字段字段与使用Query、Path和Body在路径操作函数中声明额外的校验和元数据的方式相同,可以使用Pydantic的Field在Pydantic模型内部声明校验和元数据。注意点:Field是直接从pydantic导入的,而不是像其他的(Query,Path,Body等)都从fastapi导入。首先导入Field:frompydanticimportField其次开始声明模型定义字段:frompydanticimport...
2022-02-13 21:07:21
2206
原创 python:Fastapi 请求体-多个参数
新年快乐,今天主要是唠唠如何传请求体当需要给api发送一些数据时,就需要用到请求体了。请求体就是客户端给api发送的一些数据,响应体是api发送给客户端的一些数据。这里就不能使用 GET 操作(HTTP 方法)发送请求体。要发送数据,你必须使用下列方法之一:POST(较常见)、PUT、DELETE 或 PATCH。请求体如何发送,怎么发送,fastapi给提供了专门的方法,fastapi提供了Pydantic来声明请求体:首先pydantic中的BaseModel:from
2022-02-07 22:10:59
4226
2
原创 python:Fastapi 查询参数及路径参数校验
这次主要聊聊Fastapi中,查询参数和路径参数的使用及校校验,Path是为路径参数声明校验和元数据,而 Query是 为查询参数声明校验和元数据。两个的区别就是,路径参数是跟在路径后面的,例如:/path/1,1 即为路径参数;查询参数是键值对传值,例如:/path/q=1,q=1 即为查询参数介绍完后,下面进入实例操作环节…查询参数和字符串校验查询参数校验FastAPI 允许参数声明额外的信息和校验,以下面的应用程序为例:fromtypingimportOpti...
2022-01-27 17:24:07
4487
原创 python:Fastapi 路径参数
前面聊了主要聊了一些简介和一些例子,今天主要是聊路径参数、查询参数等操作。文章中肯定是避免不了官方文档的东西,但都会进行实操,也会列出踩坑点,希望对您有所帮助。话不多少,进入代码的世界…路径参数路 径 参 数fastapi中添加路径可使用与 Python 格式化字符串相同的语法来声明路径"参数"或"变量":fromfastapiimportFastAPI@app.get("/items/{item_id}")asyncdefread_item(item_id):...
2022-01-23 11:57:46
2629
原创 python:执行.sql文件生成表和数据
执行.sql文件生成数据处理.sql文件,起初以为pymysql库可以直接执行.sql文件的,踩坑后才发现,它是不支持直接执行sql文件。解决方法,就是读取.sql文件中的数据,进行处理后提取sql语句,循环去执行并提交。第一步:获取数据库是否存在先进行数据库连接,查询数据库并获取数据库名称,根据名称是否存在来执行是否新建数据库,代码如下:def_show_databases_and_create(self):"""查询数据库是否存在,不存...
2022-01-21 19:10:40
2879
原创 python:初识 Fastapi
安装Fastapi首先安装Fastapipipinstallfastapi然后安装uvicorn来作为服务器:pipinstallfastapi当然你也可以直接安装所有(包括依赖包)pipinstallfastapi[all]分步编写脚本步骤 1:导入 FastAPI新建一个工程目录,在工程目录中新建一个.py文件(文件名称自定义即可)fromfastapiimportFastAPIFastAPI 是一个为你的 API 提供了所有...
2022-01-15 10:41:10
3123
1
原创 python:Docker部署基于Fastapi接口
这几天文章更新的都不是很频繁,主要是在倒腾fastapi框架(当然,自身懒惰也有,年底比较忙也有),这个框架官方介绍就是高性能,易于学习,高效编码,生产可用,因为最近挺火的,也来蹭下。本篇文章主要聊得是利用docker搭建fastapi接口,其余文章后面空了会补上来吧,下面进入正文。步骤一:安装docker安装docker,网上教程很多,可自行百度步骤二:安装Fastapi安装完成后,并编写一些接口,可先复制下方接口(这个后面文章会补上来…)fromenumimportEnu...
2022-01-12 20:07:00
2200
原创 python:HTTPX 库的快速开始
简介用于Python的下一代HTTP客户端。HTTPX是Python 3的全功能HTTP客户端,它提供同步和异步API,并支持HTTP/1.1和HTTP/2。此库也是借鉴requests库的思路进行设计的,所以说,你只要会requests库,那这个库学起来非常顺手。快速开始首先安装第三方包(venv-python)lifeng@applebin%pip3installhttpx-ihttps://pypi.douban.com/simple...
2022-01-08 23:22:33
2297
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人