自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 收藏
  • 关注

转载 pytest 常见用法

前言  之前一篇文章简单介绍了 pytest 以及 fixture :https://www.cnblogs.com/shenh/p/11572657.html。实际在写自动化测试脚本中,还会有一些很实用的方法,下文就来讲述下这些用法。一.pytest.mark.parametrize  pytest 内置装饰器 @pytest.mark.parametrize 可...

2019-10-08 09:34:00 240

转载 Allure+pytest 生成测试报告

简介:  python 主流自动化测试报告插件有三个:HTMLTestRunner、BeautifulReport 和 Allure。HTMLTestRunner是一个比较古老的报告模板,界面也不是很好看。BeautifulReport 界面很简洁,看起来也很直观,是一款比较不错的报告插件。如果你想提升一下你的level,让你的自动化测试报告变得高大上,那么请选择 Allure 。...

2019-09-27 10:01:00 777

转载 Pytest 使用简介

前言  最近在听极客时间的课程,里面的讲师极力推崇 pytest 框架,鄙视 unittest 框架,哈哈!然后查了些资料,发现了一条 python 鄙视链:pytest 鄙视 > unittest 鄙视 >robotframework 。  pytest 是 python 的第三方单元测试框架,比自带 unittest 更简洁和高效,支持315种以上的插件,同时...

2019-09-26 15:25:00 235

转载 python 实现线程之间的通信

  前言:因为GIL的限制,python的线程是无法真正意义上并行的。相对于异步编程,其性能可以说不是一个等量级的。为什么我们还要学习多线程编程呢,虽然说异步编程好处多,但编程也较为复杂,逻辑不容易理解,学习成本和维护成本都比较高。毕竟我们大部分人还是适应同步编码的,除非一些需要高性能处理的地方采用异步。首先普及下进程和线程的概念:进程:进程是操作系统资源分配的基本单位。...

2019-05-30 16:48:00 407

转载 python 使用 thrift 教程

一、前言:    Thrift 是一种接口描述语言和二进制通信协议。以前也没接触过,最近有个项目需要建立自动化测试,这个项目之间的微服务都是通过 Thrift 进行通信的,然后写自动化脚本之前研究了一下。  需要定义一个xxx.thrift的文件, 来生成各种语言的代码,生成之后我们的服务提供者和消费者,都需要把代码引入,服务端把代码实现,消费者直接使用API的存根,直接调用。...

2019-03-20 18:02:00 420

转载 python 操作RabbitMq详解

一、简介:  RabbitMq是实现了高级消息队列协议(AMQP)的开源消息代理中间件。消息队列是一种应用程序对应用程序的通行方式,应用程序通过写消息,将消息传递于队列,由另一应用程序读取 完成通信。而作为中间件的 RabbitMq 无疑是目前最流行的消息队列之一。 RabbitMq 应用场景广泛:系统的高可用:日常生活当中各种商城秒杀,高流量,高并发的场景...

2019-03-12 14:26:00 251

转载 python 中 *args 和 **kwargs 的区别

在 python 中,*args 和 **kwargs 都代表 1个 或 多个 参数的意思。*args 传入tuple 类型的无名参数,而 **kwargs 传入的参数是 dict 类型。下文举例说明。1.*args 的用法,以下测试代码:def test(*args): print(args) for i in args: ...

2019-03-07 09:44:00 123

转载 python ddt数据驱动(简化重复代码)

  在接口自动化测试中,往往一个接口的用例需要考虑 正确的、错误的、异常的、边界值等诸多情况,然后你需要写很多个同样代码,参数不同的用例。如果测试接口很多,不但需要写大量的代码,测试数据和代码柔合在一起,可维护性也会变的很差。数据驱动可以完美的将代码和测试数据分开,将代码进行分装,提高复用性,测试数据维护在本地文件或数据库。  使用python做接口自动化,首要任务是搭建一个自...

2019-02-22 10:21:00 88

转载 python读写Excel

  写自动化测试用例的时候需要考虑将 测试数据 和 代码 分离,代码做一层分装,测试数据做统一管理,方便日后维护。这里介绍下测试数据存储在excel,由运行脚本读取的思路。python可以通过 xlrd(读) 和 xlwt(写) 这两个库来实现对Excel的操作。一、xlrd 读取Excel内容举例我要获取如下表格的信息1.打开excel表格...

2019-02-15 16:56:00 63

转载 jmeter 分布式压测(Linux)

之前一篇博文写的是如何在Linux上使用jmeter压测,这篇介绍下Linux上jmeter的分布式压测。和windows上的分布式类似,需要配置agent节点和控制机一、Agent节点配置1. 首先安装好jdk和jmeter环境,具体见我的上一篇文章。然后打开配置文件 /bin/jmeter.properties 找到并取消这段配置的注释 server.rmi....

2019-01-21 10:49:00 116

转载 Linux平台运行jmeter

  这篇博客介绍 jmeter 在 Linux 环境进行压测,大致流程是 在 window上编辑好测试脚本,然后拷贝到 Linux上运行,再把 Linux上的运行结果拿到 windows 的 jmeter上查看。准备工作1.一台Linux机器2.下载jdk:https://www.oracle.com/technetwork/java/javase/downloads/...

2019-01-18 14:53:00 113

转载 jmeter 分布式压测(windows)

  单台压测机通常会遇到客户端瓶颈,受制于客户机的性能。可能由于网络带宽,CPU,内存的限制不能给到服务器足够的压力,这个时候你就需要用到分布式方案来解决客户机的瓶颈,压测的结果也会更加接近于真实情况。jdk和jmeter的下载和安装就不说了jmeter 分布式压测原理:分布式压测分为两块: 控制器(controller)和代理(agent)control...

2019-01-15 15:33:00 237

转载 jmeter 新手使用教程

jmeter是一款很好的接口和压力测试工具,下载就不说了,去jmeter官网下载即可。解压缩到本地,然后进入bin文件夹点击jmeter.bat一、新建一个线程组 线程组内各项配置的含义二、添加HTTP Request Defaults然后右击Thread Group, 然后设置你需要测试的ip和port3.新...

2019-01-09 13:27:00 125

转载 jmeter 压测常见的几种报错

一、 socket closed  问题原因:在JMeter下,发送http 请求时,一般都是默认选择了use keepAlive,这个是连接协议,JMeter坑就在这里,默认勾选了这个(如果不勾选的话,也不会保存),但其配置JMeter.properties中的时间设置默认却是注销的,也是是说,不会等待,一旦连接空闲,则立马断开了,导致我们压测中出现了事务失败的情形。...

2019-01-09 13:27:00 1726

转载 nginx部署django应用

  Django部署方式有很多种,之前写过一篇部署在Apache上的博文:https://www.cnblogs.com/shenh/p/7552722.html 。下文介绍的是通过Nginx来部署。  Nginx是一个高性能的HTTP和反向代理服务,运用非常广泛。Django应用可以通过Nginx+uwsgi的方式进行部署。Nginx放置在服务器的最前端来接收所有web请求,统一管...

2018-12-11 18:24:00 163

转载 selenium缺少chromedriver解决方法

1.安装好selenium,运行一段测试代码:from selenium import webdriverbrower = webdriver.Chrome()brower.get('www.baidu.com')brower.quit() 如果浏览器没有调起来,并提示以下错误:selenium.common.exceptions.WebDriverEx...

2018-12-05 14:38:00 385

转载 python三大神器之fabric(2.0新特性)

  fabric经常出现在自动化运维领域,批量处理一些运维工作。fabric是在paramiko之上又封装了一层,操作起来更加简单易用。  本来只是想写个博客记录一下,然后发现之前写的代码不能运行了,报以下错误:No module named 'fabric.api'Traceback (most recent call last): File "D:/Pycha...

2018-12-04 10:55:00 264

转载 Facebook ATC弱网环境搭建

  用户的网络环境并不是一直处于能高速传输的状态,网络的好坏受用户所处地理位置,同一基站使用人数等许多因素影响。百度公开的数据显示,百度APP使用者约有1%的人群处于弱网状态。所以研究弱网测试,来提升这部分流量用户的体验,非常有必要。低带宽、低信号强度、高延时、丢包率高等都属于弱网。弱网情况下通常还伴随的隐藏的bug,用户体验差等因素。开展这项测试前,我们得把环境搭起来,所以今天先来介绍...

2018-11-29 19:00:00 336

转载 Ubuntu 安装网卡驱动

搭建Linux平台的无线热点,需要无线网卡和驱动都要支持 AP。试了下Ubuntu平台默认驱动并不支持AP模式,所以需要更换驱动,具体操作步骤如下:1.找到自己网卡芯片的型号,由于我的环境是搭建在本地的虚拟机上的,wifi是usb网卡。所以查找usb设备:lsusbroot@ubuntu:~/rtl8188eus# lsusbBus 001 Device 003...

2018-11-29 11:18:00 483

转载 python三大神器之virtualenv

virtualenvvirtualenv用来管理python项目环境,隔离出一个只属于这个项目的虚拟python环境(windows和Linux用法一样)。 首先你需要安装virtualenv模块pip isntall virtualenv 创建一个工程项目的虚拟环境cd D:\projectvirtualenv project_env 如果...

2018-11-15 15:44:00 62

转载 python三大神器之pip

pip是一款管理python各类包和库的工具,非常好用。下文介绍常用的一些命令。● 安装:pip install 库名也可以指定版本:pip install 库名=版本● 卸载:pip uninstall 库名● 升级:pip install --upgrade 库名● 查看所有第三方库:pip list● 导出第三方库名和版本:pip freeze &...

2018-11-14 15:38:00 83

转载 python datetime模块详解

datetime是python当中比较常用的时间模块,用于获取时间,时间类型之间转化等,下文介绍两个实用类。一、datetime.datetime类:datetime.datetime.now():返回系统当前时间(2018-09-18 18:39:55.921602)datetime.datetime.now().date():返回当前时间的日期(2018-09-18)...

2018-11-09 15:46:00 89

转载 Docker容器互访三种方式

  我们都知道docker容器之间是互相隔离的,不能互相访问,但如果有些依赖关系的服务要怎么办呢。下面介绍三种方法解决容器互访问题。方式一、虚拟ip访问安装docker时,docker会默认创建一个内部的桥接网络docker0,每创建一个容器分配一个虚拟网卡,容器之间可以根据ip互相访问。[root@33fcf82ab4dd /]# [root@CentOS ~]# i...

2018-09-28 15:59:00 104

转载 python日志模块

python的日志模块使用logging,如果想要输出符合自己的预期,需要重新定义,废话不多说,直接贴代码。# encoding: utf -8from logging.handlers import TimedRotatingFileHandlerimport loggingimport osimport inspect#调用方法log.debug...

2018-09-27 14:24:00 62

转载 python实现定时任务

定时任务的实现方式有很多种,如windows服务,借助其他定时器jenkins运行脚本等方式。本文介绍的是python中的一个轻量级模块schedule。安装pip命令:pip install schedule使用方法下面是官方给出的一个示例,使用比较简单:import scheduleimport timedef job(): pri...

2018-09-26 13:41:00 120

转载 python subprocess模块详解

一、subprocess标准库  python执行shell脚本,通常会使用so模块中的几个方法,如system、spawn*、popen等。subprocess标准库的引入就是为了取代这些老的模块方法。subprocess使用时,父进程创建子进程去执行一个外部程序,并提供了标准输入输出和管道(pipe)的实现方法。subprocess.Popen()  subproc...

2018-09-20 14:58:00 151

转载 jenkins+Android+gradle持续集成

  本文Android自动化打包采用jenkins+gradle+upload to pyger的方式来实现,job执行完后只需要打开链接扫描二维码即可下载apk。一、环境准备1.下载Android SDK(最好下载开发工具Android Studio)2.安装jenkins二、配置jenkins变量配置Android自动打包之前需要下载两个插件,gradle...

2018-09-13 15:18:00 111

转载 Docker实践:python应用容器化

一、前言  容器使用沙箱机制,互相隔离,优势在于让各个部署在容器的里的应用互不影响,独立运行,提供更高的安全性。本文主要介绍python应用(django)跑在docker容器里,编写dockerfile实现镜像构建自动化以及docker神器compose。二、编写Dockerfile文件  官网下载的python镜像比较精简,web应用相关依赖还是需要自己安装的。编写Doc...

2018-08-22 17:34:00 361

转载 搭建jenkins集群

  搭建jenkins集群是为了解决单点服务器存在的性能瓶颈,也有业务的需要,比如:java服务打包的环境我们需要linux,ios打包的服务器需要mac机。一、创建agent节点1.打开 系统管理-管理节点-点击“新建节点”。2.点“OK”后,进入node配置如果没有找到步骤2中的“通过java web启动代理”,需要到 系统管理-全局安装配...

2018-08-20 15:33:00 239

转载 pip解决超时问题(timeout)

我们下载python的库一般会使用pip工具。但在下载的过程中经常会timeout,这是因为资源在国外,我们国内某些资源下载速度特别慢,主要有两种方法解决。一、设置pip timeout超时时间创建或修改pip.conf配置文件:$ sudo vi ~/.pip/pip.config //linux or MacOS timeout = 6000 #设...

2018-08-13 14:28:00 346

转载 Docker commit使用

有时候需要在基础镜像里面安装某些依赖,如果把命令写在Dockerfile里,部分依赖软件下载很慢,构建镜像的时候又会花很长的时间。所以最好是分装一个包含依赖库的新镜像。docker提供commit来实现比如我有一个python镜像,比较精简。缺乏freetds-dev和unixodbc-dev这两个依赖。1.先把镜像run起来docker run -it --n...

2018-08-09 17:06:00 95

转载 Docker基本命令汇总

Docker的三大核心概念:镜像、容器、仓库镜像:类似虚拟机的镜像、用俗话说就是安装文件。容器:类似一个轻量级的沙箱,容器是从镜像创建应用运行实例,可以将其启动、开始、停止、删除、而这些容器都是相互隔离、互不可见的。仓库:类似代码仓库,是Docker集中存放镜像文件的场所。1.设置docker自启动使用yum安装好docker后,设置开机启动。[root...

2018-07-19 14:26:00 101

转载 python redis模块详解

前言 现在越来越觉得知识的沉淀尤为重要,最近打算慢慢的把一些知识点做个记录,如果长期不用生疏了也可以快速回顾。下面我会依次介绍在python中常用组件redis,rabbitmq,mongodb,ES(lasticsearch),zk的用法。这篇文章主要介绍redis的使用。简单介绍下redis,一个高性能key-value的存储系统,支持存储的类型有string、list、s...

2018-07-05 10:12:00 99

转载 python异步编程之asyncio(百万并发)

前言:python由于GIL(全局锁)的存在,不能发挥多核的优势,其性能一直饱受诟病。然而在IO密集型的网络编程里,异步处理比同步处理能提升成百上千倍的效率,弥补了python性能方面的短板,如最新的微服务框架japronto,resquests per second可达百万级。python还有一个优势是库(第三方库)极为丰富,运用十分方便。asyncio是python3.4版...

2018-06-12 17:58:00 1289

转载 Django rest_framework实现RESTful API

一、什么是REST  面向资源是REST最明显的特征,资源是一种看待服务器的方式,将服务器看作是由很多离散的资源组成。每个资源是服务器上一个可命名的抽象概念。因为资源是一个抽象的概念,所以它不仅仅能代表服务器文件系统中的一个文件、数据库中的一张表等等具体的东西,可以将资源设计的要多抽象有多抽象,只要想象力允许而且客户端应用开发者能够理解。  与面向对象设计类似,资源是以名词...

2018-05-23 17:05:00 208

转载 jenkins + pipeline构建自动化部署

一、引言 Jenkins 2.x的精髓是Pipeline as Code,那为什么要用Pipeline呢?jenkins1.0也能实现自动化构建,但Pipeline能够将以前project中的配置信息以steps的方式放在一个脚本里,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂流程,形成流水式发布,构建步骤视图化。简单来说,Pipelin...

2018-04-27 17:45:00 930

转载 jenkins部署.net平台自动化构建

在引入自动化部署工具的时候,我们对比了jenkins和gitlab CI,jenkins有非常丰富的插件,配置起来方便。gitlab CI更倾向于脚本配置,当然jenkins也可以使用pipeline实现全脚本化配置(everything is code,哈哈)。我们这里主要讲述jenkins的自动化部署。基本组合是jenkins+git+msbuild+python,实现从代码...

2018-04-26 18:04:00 216

转载 python实现编写windows服务

使用python编写windows服务 最近测试服务器上经常发生磁盘空间不足,每次手动清除比较麻烦,所以写个windows服务定时清理下。中间也遇到过几个坑,一起记录下来。 1.python实现windows服务需要借助第三方库pywin32。可使用 pip3 命令下载。 代码如下:# ZPF# encoding=utf-8import win32ti...

2018-04-24 16:46:00 216

转载 iis部署python运行环境

IIS部署1.启用或者关闭windows功能,选择安装CGI,我这里已经安装过了。2.安装后重新打开IIS看到CGI3.配置ISAPI和CGI限制4.右上角添加,路径是python安装路径,注意要加上两个 %s %s点确定5.处理映射关系6.右上角 添加模块,模块选择:CgiModule...

2017-12-12 15:35:00 152

转载 Jenkins执行批处理文件、powershell失败

今天搭建Jenkins持续集成环境,编译环境是.net core。整理了一些发布的命令配置在Jenkins,问题来了,使用powershell插件运行dotnet restore、dotnet build时报错,错误日志显示无法通过nuget获取到包,可在Windows powershell中编译时是OK的。于是怀疑是Jenkins权限不够,查了一些资料,设置Jenkins的权限...

2017-11-02 10:42:00 249

空空如也

空空如也

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

TA关注的人

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