
Python测试开发训练营
文章平均质量分 79
测试开发训练营
上帝De助手
人生苦短,及时行“乐”!
展开
-
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语法糖系列
语法糖说明语法糖(Syntactic sugar): 计算机语言中特殊的某种语法 这种语法对语言的功能并没有影响 对于程序员有更好的易用性 能够增加程序的可读性简而言之,语法糖就是程序语言中提供[奇技淫巧]的一种手段和方式而已。 通过这类方式编写出来的代码,即好看又好用,好似糖一般的语法。固美其名曰:语法糖一个简单的例子假设:有2个数字,现需要从...原创 2018-10-28 14:51:35 · 42583 阅读 · 8 评论 -
Python各种类型装饰器详解说明
装饰器说明Python中的装饰器是一种可以装饰其它对象的工具。 该工具本质上是一个可调用的对象(callable),所以装饰器一般可以由函数、类来实现。 装饰器本身需要接受一个被装饰的对象作为参数,该参数通常为函数、方法、类等对象。 装饰器需要返回一个对象,该对象可以是 经过处理的原参数对象、一个包装且类似原参数的对象;或者返回一个不相干内容(通常不建议使用)相信通过上述一段文字的描述...原创 2018-10-27 19:32:42 · 11777 阅读 · 10 评论 -
Selenium + python的自动化框架搭建
selenium是一个web的自动化测试工具,和其它的自动化工具相比来说其最主要的特色是跨平台、跨浏览器。支持windows、linux、MAC,支持ie、ff、safari、opera、chrome等。此外还有一个特色是支持分布式测试用例的执行,可以把测试用例分布到不同的测试机器的执行,相当于分发机的功能。关于selenium的原理、架构、使用等可以参考其官网的资料,这里记录如何原创 2011-12-01 13:56:58 · 37071 阅读 · 5 评论 -
import,reload,__import__在python中的区别
import作用:导入/引入一个python标准模块,其中包括.py文件、带有__init__.py文件的目录。e.g:import module_name[,module1,...]from module import *|child[,child1,...]说明:多次重复使用import语句时,不会重新加载被指定的模块,只是把对该模块的内存地址给引用到本地变量环境。测原创 2012-07-19 13:49:44 · 54398 阅读 · 7 评论 -
python拼接form-data的post内容
#!\urs\bin\env python#encoding:utf-8 #设置编码方式 from http2 import httpimport urllibdef ReadFileAsContent(filename): #print filename try: with open(filename, 'rb') as f:原创 2013-04-26 18:42:35 · 9362 阅读 · 1 评论 -
webpy的url动态匹配
因为看过django的url匹配功能,发现其模块耦合性的设计非常好,而之前用webpy写的一个工具,因为后来不断的添加功能导致产生N多的url匹配;所以就想看看webpy有没有这个功能可以简化一下url的匹配,还有就是分离url和实际处理模块之间的耦合度。百度查了一下,结果不好使,webpy用的人本来就少,可恨google是没法用,最后只有直接去看看是否能解决问题。好就好在按照django乱配原创 2013-05-07 19:52:09 · 5563 阅读 · 0 评论 -
SQLAlchemy批量插入性能比较
import timeimport sqlite3from sqlalchemy.ext.declarative import declarative_basefrom sqlalchemy import Column, Integer, String, create_enginefrom sqlalchemy.orm import scoped_session, sessio...转载 2017-04-26 10:25:52 · 19090 阅读 · 1 评论 -
python的requests发送/上传多个文件
1、需要的环境Python3.X Requests 库2、单字段发送单个文件在requests中发送文件的接口只有一种,那就是使用requests.post的files参数, 请求形式如下:url = "http://httpbin.org/post"data = Nonefiles = { ... }r = requests.post(url, data, files=f...原创 2017-07-10 13:45:32 · 88479 阅读 · 19 评论 -
Python实现点阵字体读取与转换
点阵字体是指根据文字的像素点来显示的字体,效果如下:使用Python读取并显示的过程如下: 根据中文字符获取GB2312编码 通过GB2312编码计算该汉字在点阵字库中的区位和码位 通过区位和码位计算在点阵字库中的偏移量 基于偏移量获取该汉字的32个像素存储字节 解析像素字节获取点阵坐标信息 在对应的坐标显示信息位。如该像素点是否显示点亮 使用该代码前提:下载点阵字...原创 2017-10-13 18:00:53 · 12565 阅读 · 0 评论 -
认识WSGI
WSGI是Web Server Gateway Interface的缩写。它是Python专有的一种接口规范(其它语言也有类似的规范,只是名字不一样而已,Python则是第一个提出该规范的语言)。该规范规定了WEB服务器与WEB应用框架之间的通信方式。首先,WEB应用需要提供一个可调用的接口(如:函数);该接口接收2个参数:第一个参数是当前请求所有请求信息的字典对象第二个参数是一个原创 2017-11-14 16:46:53 · 1000 阅读 · 0 评论 -
WSGI的“前世今生”
前面有一篇文章介绍了WSGI接口规范,这里把与WSGI相关的一系列协议与规范进行了梳理,可以更好的理解WSGI的概念。本文章涉及到的相关内容有:cgiFastcgiWSGI【mod_wsgi】uWSGI/uwsgi1、cgicgi全称是"公共网关接口"(Common Gateway Interface),它是一个古老的通信接口协议;可以适用于所有的脚本语言。其工作方式是当用户有原创 2017-11-14 18:12:01 · 1026 阅读 · 0 评论 -
gunicorn + Flask架构中使用多进程全局锁
有之前的认识WSGI和WSGI的前世今世之后,现在就可以介绍如何在gunicorn + Flask架构模式下,在Flask处理线程中使用全局锁。 说到锁在Python中也有很多锁,最常见用的就是多进程锁(multiprocessing.Lock)和多线程锁(threading.Lock)。正常情况下,我们是可以直接使用这些锁的。多进程锁可以在多个子进程中实现锁定临界资源的功能,而多线程锁则...原创 2017-11-14 18:49:52 · 20713 阅读 · 14 评论 -
再谈Python多线程--正确的使用场景
多线程是编程过程中经常会使用到的手段,其目的是为了能提高任务执行的效率。在Python中,我们都知道实现多线程主要有2种方式:使用threading.Thread()方法 继承threading.Thread类一个简单的多线程的样例如下: import threadingl = []n = 2max_n = 10000x = 0def countdown(): ...原创 2017-11-16 16:24:52 · 5440 阅读 · 0 评论 -
再谈Python多线程--避免GIL对性能的影响
在Python中使用多线程,如果你对GIL本身没有一定的了解;那么很有可能你只是写出了正确的多线程代码,而并没有达到多线程的目的,甚至截然相反的效果。下面介绍了Python中GIL的作用和局限性,并提供了避免GIL影响性能的几个建议。 GIL是CPython中特有的全局解释器锁(其它实现版本因为有自己线程调度机制,所以没有GIL机制)。本质上讲它就是Python进程中的一把超大锁。这把锁在...原创 2017-11-17 17:25:07 · 9631 阅读 · 1 评论 -
Pycharm配置远程调试
条件pycharm需要专业版方式使用远程解释器 使用远程调试器使用远程解释器默认情况下我们在本地开发Python程序时,使用的是本地的Python解释器,如果你安装了virtualenv或者pyenv的话,还可以选择这些虚拟环境。而使用Pycharm的专业版,则还可以选择使用远程Linux机器上的解释器。下面就来介绍下使用远程解释器的步骤。 远程部署配置远程部署主要用...原创 2017-11-23 18:15:26 · 46660 阅读 · 8 评论 -
python 发送和接收ActiveMQ消息
ActiveMQ是java开发的消息中间件服务。可以支持多种协议(AMQP,MQTT,OpenWire,Stomp),默认的是OpenWire。而python与ActiveMQ的通信使用的是Stomp协议。而如果你的服务没有开启则需要配置开启。首先需要安装python的stomp库。命令如下:pip install stomp.py接着,就是上代码了具体如下:# -*-codi...转载 2018-03-15 16:18:18 · 19363 阅读 · 13 评论 -
selenium下对指定元素进行截图
Selenium本身是可以支持截图的,包括全屏和元素的截图;只是对于不用的浏览器的兼容性有差异而已。具体差异如下: Chrome FireFox IE Edge PhantomJS 全屏截图 可视区域 可视区域 可视区域 可视区域 整个页面 元素截图 正常 正常 正常 正常 整个页面 所...原创 2018-10-09 15:34:26 · 22387 阅读 · 8 评论 -
基于host的http代理--hproxy
说到代理,大多数情况我们都会想到通过浏览器设置的正向代理,以及类似nginx的反向代理;而实际上除此之外还有一种基于host方式实现的代理。本文主要讲述,如何实现一个基于host方式的http代理,以及它与普通代理之间的区别。这种方式的代理主要可以应用于哪些实际的测试场景。与普通代理的区别所谓的普通代理,就是我们日常会用到的那种代理,通常需要客户端本身支持,使用时对客户端进行代理信息配...原创 2019-08-29 22:35:51 · 12762 阅读 · 0 评论 -
Telegraf安装与简易使用指南
无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。点这里可以跳转到教程。文章目录安装YUM安装使用配置插件使用总结原文链接前面我们依次介绍了Influxdb、Grafana的安装和基本使用,这次我们来看看Telegraf的安装与基本使用。Telegraf是InfluxData旗下的数据采集工具,...原创 2019-09-02 13:23:18 · 6287 阅读 · 4 评论