
python应用
文章平均质量分 83
上帝De助手
人生苦短,及时行“乐”!
展开
-
py-ops面向编程的python关键字测试框架
说明这是一款基于pytest封装,同时支持关键字和BDD,测试数据分离,面向编程,轻量级的,对上层自动化应用友好的基础测试框架。其主要核心功能:支持关键字定义支持关键字组装测试数据透传该框架的主要特点:基于pytest框架开发,支持原生插件同时具备关键字和BDD框架的特点无二次学习成本(Python|json)天然支持测试数据分离与传递对上层应用提供友好的封装接口支...原创 2019-12-25 09:28:44 · 7497 阅读 · 1 评论 -
再谈Python多线程--正确的使用场景
多线程是编程过程中经常会使用到的手段,其目的是为了能提高任务执行的效率。在Python中,我们都知道实现多线程主要有2种方式:使用threading.Thread()方法 继承threading.Thread类一个简单的多线程的样例如下: import threadingl = []n = 2max_n = 10000x = 0def countdown(): ...原创 2017-11-16 16:24:52 · 5440 阅读 · 0 评论 -
Python多重继承说明及应用
Python中没有接口的概念,替代之的是多重继承。而引入多重继承之后,一个新的问题是多个父类之间的继承顺序和方法调用顺序。比如:子类中调用的方法在多个父类中都存在的时候,到底会调用哪个父类的方法?(显然不会把所有父类的方法都调用一遍) 理解MRO如果把单重继承理解为是链表结构,那么多重继承则可以认为是树状结构。所以多重继承的向上搜索的规则有2种实现方式:深度优先搜索(DFS) 广...原创 2017-11-27 18:02:40 · 2793 阅读 · 0 评论 -
认识WSGI
WSGI是Web Server Gateway Interface的缩写。它是Python专有的一种接口规范(其它语言也有类似的规范,只是名字不一样而已,Python则是第一个提出该规范的语言)。该规范规定了WEB服务器与WEB应用框架之间的通信方式。首先,WEB应用需要提供一个可调用的接口(如:函数);该接口接收2个参数:第一个参数是当前请求所有请求信息的字典对象第二个参数是一个原创 2017-11-14 16:46:53 · 1000 阅读 · 0 评论 -
Python实现点阵字体读取与转换
点阵字体是指根据文字的像素点来显示的字体,效果如下:使用Python读取并显示的过程如下: 根据中文字符获取GB2312编码 通过GB2312编码计算该汉字在点阵字库中的区位和码位 通过区位和码位计算在点阵字库中的偏移量 基于偏移量获取该汉字的32个像素存储字节 解析像素字节获取点阵坐标信息 在对应的坐标显示信息位。如该像素点是否显示点亮 使用该代码前提:下载点阵字...原创 2017-10-13 18:00:53 · 12565 阅读 · 0 评论 -
UMeditor在线web编辑器 -- python版
因为要写文章发布站点,所以需要在线编辑器;网上搜索时发现百度有开源了一款UEditor,很美观也很好用;由于自己用到功能不是很多,所以就决定使用其Mini版的UMeditor。其官网地址为:http://ueditor.baidu.com/website/umeditor.html但是其官网只提供了php、asp、jsp的集成包,对于python没有,于是基于webpy搭建了一个UMedi原创 2015-06-03 15:48:26 · 7826 阅读 · 0 评论 -
代码中加入如下内容,可保上线平安无事!~!~!~!~~~!~!!~
#!/usr/bin/env python#encoding: utf-8''' _ooOoo_ o8888888o 88" . "88 (| -_- |) O\ = /O ___转载 2014-08-27 11:01:29 · 2933 阅读 · 0 评论 -
python实现tail -f命令功能
#!/usr/bin/env python#!encoding:utf-8'''Python-Tail - Unix tail follow implementation in Python.python-tail can be used to monitor changes to a file.Example: import tail # Create a tai转载 2014-08-12 19:21:56 · 12490 阅读 · 0 评论 -
python比较2个xml内容
from xml.etree import ElementTreeOK=Truemain_pid = 10000loop_depth = 0def compare_xml(left, right, key_info='.'): global loop_depth loop_depth += 1 if loop_depth == 1: print if le原创 2014-07-31 13:51:34 · 6539 阅读 · 2 评论 -
python发送邮件sendmail--smtplib【带附件】
#!/usr/bin/env python# -*- coding: UTF-8 -*-from email.mime.multipart import MIMEMultipartfrom email.mime.base import MIMEBasefrom email.mime.text import MIMEText from email.utils import COMMAS原创 2014-05-31 15:21:05 · 11260 阅读 · 1 评论 -
nginx[+spawn-fcgi]+flup+webpy服务搭建
webpy环境搭建在开始webpy搭建之前,有必要熟悉一下什么事fastcgi,因为搭建环境时都是使用这个模式去运行webpy程序的,具体的fastcgi描述可以参考各种百科;fastcgi协议官网(http://www.fastcgi.com/drupal/)上面描述一些基础信息,fastcgi的api、开发,fastcgi的实现程序,支持fastcgi的web服务器等等。了解了原创 2012-07-10 14:59:06 · 12553 阅读 · 5 评论 -
python循环遍历文件操作
#!\urs\bin\env python#encoding:utf-8 #设置编码方式 import osimport reclass loop_file: def __init__(self, root_dir, short_exclude=[], long_exclude=[], file_extend=[]): self.root_dir =原创 2013-06-27 14:14:06 · 7677 阅读 · 0 评论 -
python实现测试脚本的关键字统计程序
通常自动化测试项目到了一定的程序,编写的测试代码自然就会很多,如果很早已经编写的测试脚本现在某些基础函数、业务函数需要修改,那么势必要找出那些引用过这个被修改函数的地方,有些IDE支持全文查找和引用查找,而有些简单的可能就没有,因为日后要用到统计功能、和一些其它的需求,所以写了一个脚本。除了跟目录下全文查找引用过的文件外,还是支持统计查找到的数量,一次可以查找多个关键字,支持按主关键字来归类。原创 2013-06-08 18:47:22 · 4849 阅读 · 0 评论 -
python操作excel之xlrd
xlrd是专门用来在python中读取微软execel的模块,可以自己直接下载安装,也可以通过包管理器安装。官方资料:下载地址:http://pypi.python.org/pypi/xlrd官网地址:http://www.python-excel.org/文档地址:https://secure.simplistix.co.uk/svn/xlrd/trunk/xlr原创 2011-12-02 14:16:59 · 68746 阅读 · 7 评论 -
再谈Python多线程--threading各类锁
使用多线程的好处是提高执行效率,但同时带来了数据同步的问题。即多个线程同时对一个对象进行操作时,可能会出现资源冲突的问题;在不加锁的情况下,代码可能并未像我们想向的那样工作。举个栗子:import threadingn = 2max_n = 10000x = 0def countup(n): global x for i in range(n): ...原创 2017-11-16 18:06:59 · 2503 阅读 · 0 评论 -
Pycharm配置远程调试
条件pycharm需要专业版方式使用远程解释器 使用远程调试器使用远程解释器默认情况下我们在本地开发Python程序时,使用的是本地的Python解释器,如果你安装了virtualenv或者pyenv的话,还可以选择这些虚拟环境。而使用Pycharm的专业版,则还可以选择使用远程Linux机器上的解释器。下面就来介绍下使用远程解释器的步骤。 远程部署配置远程部署主要用...原创 2017-11-23 18:15:26 · 46660 阅读 · 8 评论 -
gunicorn + Flask架构中使用多进程全局锁
有之前的认识WSGI和WSGI的前世今世之后,现在就可以介绍如何在gunicorn + Flask架构模式下,在Flask处理线程中使用全局锁。 说到锁在Python中也有很多锁,最常见用的就是多进程锁(multiprocessing.Lock)和多线程锁(threading.Lock)。正常情况下,我们是可以直接使用这些锁的。多进程锁可以在多个子进程中实现锁定临界资源的功能,而多线程锁则...原创 2017-11-14 18:49:52 · 20713 阅读 · 14 评论 -
Locust性能评测及优化详解
文章目录Locust性能评测及优化详解性能评测环境准备1、压测环境准备2、服务环境准备3、压测工具准备压测开始LocustJmeterabhttp_load压测说明性能优化Locust优化项测试Locust默认是否为keep-alive替换为urllib3实现client替换为socket实现client替换为go实现client总结Locust性能评测及优化详解这篇文章是用来补前一篇文章挖...原创 2019-07-21 13:42:13 · 6396 阅读 · 0 评论 -
如何进行“花式”HTTP接口测试
文章目录最Old-School的方式最普通的方式最文艺的方式最认真的方式最“期望”的方式最“偷懒”的方式最“理想”的方式总结新书推荐原文首发: http://www.testqa.cn/article/detail/234现如今每当我们谈起自动化测试的时候,首先想到的不在是UI自动化,而是接口自动化。因为大家在被UI自动化“坑”多了之后,都变了聪明了。那么今天我们就来聊聊HTTP接口测试的那...原创 2019-07-04 23:55:55 · 1663 阅读 · 0 评论 -
性能测试工具Locust源码浅析
近期由于有项目需要做性能评测,于是半道出家的我便从选择性能测试工具,开始了我的性能之旅。为什么要做工具评测作为性能测试的老司机们而言,要么对各大性能测试工具的特性都了然于心了,要么已经使用“惯”了手头上的工具;他们是不会没事做个性能评测的,只有新手们才会认认真真的、按部就班的从第一步走起。而对于性能测试而言,首要的任务自然是选择工具了。所以就有了性能测试工具评测这一趴!为什么要解析Lo...原创 2019-07-10 00:02:25 · 2276 阅读 · 1 评论 -
PyTestReport-0.1.9版本更新
文章目录多了哪些功能呢?如何与PyTest框架结合使用如何通过API的方式生成报告如何生成图片报告并发送邮件新书推荐原文首发还记得那个发布不就的Python单元测试报告框架么?噢!如果不记得那我今天就再来说一篇吧!_ PyTestReport 0.1.9版本正式发布了!多了哪些功能呢?增加对PyTest框架的支持(目前可以支持unittest、pytest两大框架)增加了支持通过l...原创 2019-06-22 22:18:29 · 1405 阅读 · 0 评论 -
Python单元测试报告框架PyTestReport
文章目录开局一张图安装通过pip安装通过安装包通过源码(最新版本)使用单元测试使用样例附录原文链接如果你是Java栈的同学,那么你可能知道extent report测试报告框架。而Python你可能知道HTMLTestRunner测试报告框架。今天要介绍的则是基于HTMLTestRunner的新测试报告框架PyTestReport。如果Python语言界已经有了HTMLTestRunne...原创 2019-05-13 23:51:31 · 1519 阅读 · 0 评论 -
如何打包和发布Python程序
原文首发文章目录如何打包和发布Python程序打包编写setup.py文件编译发布TestPYPI发布PYPI发布附录新书推荐如何打包和发布Python程序在使用Python的过程中,我们经常需要做的一件事情就是通过pip来安装第三方的包。那么你是否也曾想过pip安装的包是怎么被打包并发布上去的呢?今天就来说一说Python的第三方包的打包与发布流程!打包想要发布一个第三方的包,首先...原创 2019-05-04 23:54:14 · 10018 阅读 · 1 评论 -
Python定时任务神器 - APScheduler
文章目录Python定时任务神器 - APScheduler简单说明jobexecutorsjobstorestriggerscheduler使用方式静态配置任务动态添加任务异步任务其它使用API新书推荐Python定时任务神器 - APScheduler定时任务在很多的开发场景中都会使用到,在Python中也提供很多的定时任务库。比如:schedschedulecelery但...原创 2019-04-24 18:16:40 · 1489 阅读 · 0 评论 -
Python日志模块logging使用详解
文章目录前言使用默认配置记录日志写入到日志文件日志信息格式化通过代码配置日志不同Logger进行不同设置通过文件配置日志总结前言每个语言都会有自己的日志模块,Python也不例外。通常情况下当需要使用到日志的时候,一般都是匆匆查找下资料,按照步骤进行下配置就是完事了,不太会去总结日志模块的使用方式。经常过一段时间新项目需要用的时候,还是需要去网上搜索下配置方式。所以今天就为了日后的使用方便...原创 2019-03-23 23:12:10 · 925 阅读 · 0 评论 -
Selenium通过设置代理实现抓取HTTPS请求
起因Selenium本身是不支持HTTP请求抓取的,因为其团队认为这个不是selenium要解决的问题(确实也是)。所以推荐使用一个相关联的项目 -- BrowserMobProxy。具体项目首页见:https://github.com/lightbody/browsermob-proxy尝试因为项目需要,所以就研究了下BrowserMobProxy。它其实是一个java实现的开源代...原创 2018-12-04 19:59:45 · 11035 阅读 · 0 评论 -
Win10下Celery4.2.1基于redis的部署与错误
Celery是一个分布式异步任务的神器,由Python开发但是其通信协议可以支持其它语言。它还可以设置定时任务,设置多个任务队列并路由任务到指定的队列;同时还提供了运行时的一些监控和管理接口。安装安装python3.7(官网下载直接安装) 安装celery库(pip install celery) 安装redis库(pip install redis)配置\启动worker安装完...原创 2018-11-08 15:21:21 · 2692 阅读 · 0 评论 -
python3url编解码base64编解码ASE加解密
字符编解码Python3相对于Python2的一大改变就是,对默认字符类型进行了修改。Python2中定义字符串默认为二进制字符串,强制加前缀u的才是unicode字符串;而Python3中字符串默认为unicode,强制加前缀b的才是二进制字符串。(也就是刚好反过来了)这里的二进制字符串:指的是进行过编码后的字符串。即utf8、gbk、ascii等编码后的串都是二进制的。存放到文件的时候...原创 2018-11-01 20:50:29 · 2520 阅读 · 0 评论 -
Python各种类型装饰器详解说明
装饰器说明Python中的装饰器是一种可以装饰其它对象的工具。 该工具本质上是一个可调用的对象(callable),所以装饰器一般可以由函数、类来实现。 装饰器本身需要接受一个被装饰的对象作为参数,该参数通常为函数、方法、类等对象。 装饰器需要返回一个对象,该对象可以是 经过处理的原参数对象、一个包装且类似原参数的对象;或者返回一个不相干内容(通常不建议使用)相信通过上述一段文字的描述...原创 2018-10-27 19:32:42 · 11777 阅读 · 10 评论 -
Python语法糖系列
语法糖说明语法糖(Syntactic sugar): 计算机语言中特殊的某种语法 这种语法对语言的功能并没有影响 对于程序员有更好的易用性 能够增加程序的可读性简而言之,语法糖就是程序语言中提供[奇技淫巧]的一种手段和方式而已。 通过这类方式编写出来的代码,即好看又好用,好似糖一般的语法。固美其名曰:语法糖一个简单的例子假设:有2个数字,现需要从...原创 2018-10-28 14:51:35 · 42583 阅读 · 8 评论 -
python应用regex正则表达式模块re
#!/usr/bin/env python # -*- coding: utf-8 -*- import re def regex(): str = 'abcdab' patstr = 'ab' ##可以匹配的2种方式:1 patobj = re.compile(patstr) got = patobj.match(st原创 2011-12-13 22:38:26 · 15736 阅读 · 0 评论 -
python抓网页资源小脚本
#!/usr/bin/env python# coding: utf-8import urllibdef filter_src(file_name): resource_list = [] f_obj = open(file_name) for f_line in f_obj: if '404' in f_line: str_原创 2012-11-19 23:24:48 · 2320 阅读 · 0 评论 -
webpy中配置发送邮件服务
官方cookbook链接:http://webpy.org/cookbook/sendmail.zh-cn前提:需要安装web.py了,因为我这个web应用是用web.py写的#!\urs\bin\env python#encoding: utf-8import webdef send_mail(send_to, subject, body, cc=None, bcc=None原创 2013-01-30 16:56:58 · 3301 阅读 · 1 评论 -
设计模式之python版(八)--外观模式
外观模式:应用特性:在很多复杂而小功能需要调用需求时,而且这些调用往往还有一定相关性,即一调用就是一系列的。结构特性:把原本复杂而繁多的调用,规划统一到一个入口类中,从此只通过这一个入口调用就可以了。class small_or_piece1: def __init__(self): pass def do_small1(self)原创 2012-05-30 23:39:37 · 1311 阅读 · 0 评论 -
设计模式之python版(九)--建造者模式
建造者模式:应用特性:同类化创造相同模块,避免遗漏固有属性结构特性:把创造的流程规范化,每个流程的具体任务可以自定义化,建造过程批量化。#!/usr/bin/env python #encoding: utf-8class product: def __init__(self): self.parts = [] def add(se原创 2012-05-31 11:15:45 · 1316 阅读 · 0 评论 -
设计模式之python版(四)代理模式
代理模式应用特性:需要在通信双方中间需要一些特殊的中间操作时引用,多加一个中间控制层。结构特性:建立一个中间类,创建一个对象,接收一个对象,然后把两者联通起来UML:#!/usr/bin/env python #encoding: utf-8 class sender_base: def __init__(self): pass原创 2012-05-10 13:01:08 · 1831 阅读 · 0 评论 -
设计模式之python版(一)--工厂模式
工厂模式:应用特性:其实工厂模式就是创建对象模式,你想要什么就给你创建什么对象。通常接收一个要求,返回一个要求的对象。结构特性:一个独立的各类对象的生成器。UML:#!/usr/bin/env python#encoding: utf-8class baseclass: def __init__(self): pass原创 2012-05-08 22:45:55 · 1667 阅读 · 0 评论 -
设计模式之python版(二)--策略模式
策略模式:应用特性:接收任意对象,然后对不同的对象去做相同的一件事情。结构特性:策略模式其实是利用了多态的特性,使用固定的方法,但是把对象作为个体抽离出来了,对象在这里有点象抽离出来的配置文件的意思UML:#!/usr/bin/env python#encoding: utf-8class baseclass: def __init__(self):原创 2012-05-08 23:21:37 · 1564 阅读 · 0 评论 -
设计模式之python版(三)--装饰模式
装饰模式:应用特点:是动态的给主功能添加一些装饰性的功能。结构特性:就是把各装饰性的功能和主功能分开,然后根据需要选择装饰性的功能来修饰主功能即可。UML:#!/usr/bin/env python #encoding: utf-8 ##被装饰的主类class baseclass: def __init__(self): pass原创 2012-05-09 14:00:26 · 1637 阅读 · 0 评论 -
设计模式之python版(五)--工厂方法
工厂方法应用特性:需要生成的对象经常需要增改时,抽离出易变的内容并独立放置在一个类中结构特性:一个工厂类分离成多个子工厂类,分别只做一件事UML:#!/usr/bin/env python #encoding: utf-8 class factory_base: def __init__(self): pass d原创 2012-05-10 13:22:04 · 1390 阅读 · 0 评论