selenium+python2.7 +chrome环境搭建

window 安装步骤:

1、下载python安装。

https://www.python.org/downloads

根据自己的操作系统,选择相应的版本进行安装。我的安装目录为:C:\Python27

2、配置python环境变量。

修改我的电脑–>属性–>环境变量–>系统变量中的PATH。变量值: ;C:\Python27;C:\Python27\Scripts;

3、安装selenium

我是通过pip安装的,命令为:pip install selenium

当然也可以直接下载selenium包进行安装。步骤为:cmd进入目录执行python setup.py install

4、安装chromedriver

下载与chrome对应版本的chromedriver。将chromedriver文件放在chrome安装目录下并配置到环境变量中。配置方法参考步骤2.

附:chrome与chromedriver版本之间的对应关系。

所有版本的chromedriver可以在http://chromedriver.storage.googleapis.com/index.html中进行下载。

至此:python+chromedriver 在window中配置已经结束

 

Jmeter 后置处理器

如何获取HTTP请求 响应结果的数据? 此文以获取产品ID为例进行演示。

如下为请求相应数据中的部分数据,我们最终要获取的数据为:
productid=1602171116hezongjiaotong中的1602171116hezongjiaotong。

{productid=1602171116hezongjiaotong
productid=2016002100000000guoqibao
productid=201600210000000guahaobao
productid=201601060931huanqiuwuyou
productid=20160119142600luxingxiaa}

那么如何获取呢?Jmeter提供的后置处理器则为我们提供了获取方法。以下我们以正则表达式提取器为例进行说明,添加的路径为【添加/后置处理器/正则表达式提取器】,添加后目录结果如下:

对应添加的在正则表达式如下所示:

正则提取器说明:

  • Apply to:应用范围
  • 要检查的响应字段:样本数据源。
  • 引用名称:其他地方引用时的变量名称,引用方法:${引用名称}
  • 正则表达式:数据提取器,如上图的productid=(.*)不熟悉正则的,劳烦联系度娘或者谷大爷,谢谢!
  • 模板:对应正则表达式提取器类型,样式为:1。若为:0,则为所有的匹配数据,例如:productid=1602171116hezongjiaotong其中1602171116hezongjiaotong 为 (.*) 匹配的数据,即最终提取的目标部分。若模板为:1,则 1 对应正则表达式中的 (.+?)
  • 匹配数字:正则表达式匹配数据的最终结果可以看做一个数组,匹配数字即可看做是数组的第几个元素。当为 0 时,随机返回匹配的数据,当为 1 时,表示返回匹配结果数组的第一个元素。
  • 缺省值:匹配失败时的默认值。通常用于后续的逻辑判断,一般通常为特定含义的英文大写单词组合,简单可写为 ERROR。

 

Jmeter 代理服务器设置

(一)设置Jmeter之web代理,操作步骤我们以gif图代替。

第一步:在“工作台”添加http代理服务器

第二步:添加一个线程组

第三步:在代理服务器上设置各项参数,并启动代理服务器

第四步:设置浏览器的代理,必须跟代理服务器 保持一样的参数

第五步:在浏览器操作,检查jmeter是否有录制相关操作。

第六步:设置浏览器代理。

第七步:选择就可以愉快的进行操作了。

(二)设置Jmeter之app代理,操作步骤如下所示:

第一步:设置jmeter代理服务器,与设置web代理的第五步一致

第二步:找到本机链接的ip地址:打开CMD命令行工具,输入ipconfig

第三步:

打开手机wifi设置,必须跟代理服务器 保持一样的参数

第四步:可以启动手机上任一app,可以看到所有的请求都被发送到jmeter了。

注意:第一:录制结束后,一定要去掉代理,否则你的浏览器、手机在代理断开后上不了网。

第二:手机必须跟jmeter代理服务器在同一网段内

Jmeter之定时器

简单来说一下,虽然我们常说的“多用户并发测试”,但是真正的并发是不存在的,为了更真实的模拟并发,我们采用集合点。比较常见的就是用户登录。下面我们就模拟多用户同时登录。

1、启动GUI界面,并添加登录接口

2、添加集合点

3、集合点用法

Number of Simulated Users to Group by:集合多少人后再执行请求(也就是执行的线程数)

注意:等同于设置为线程租中的线程数,一定要确保设置的值不大于它所在线程组包含的用户数。

Timeout in milliseconds:指定人数 多少秒没集合到算超时(设置延迟时间以毫秒为单位)

注意:如果设置Timeout in milliseconds为0,表示无超时时间,会一直等下去。
线程数量无法达到”Number of Simultaneous Users to Group by”中设置的值,那么Test将无限等待,除非手动终止。

4、查看结果树

至此,jmeter之定时器使用及配置告一段落。

Jmeter 分布式部署遇到的问题

1、远程启动测试,响应数据为空

远程运行jmeter脚本,主机无性能响应数据。如下图:

从机的jmeter server 显示链接后立即结束,看似执行实则未执行。

解决办法:

1、jmeter 脚本若有csv data configure测试数据,主机和从机两边都要存放。且从机中测试数据的存放路径和主机中的路径一定要保持一致。
 2、在原因1的基础上,主机的测试数据地址要用绝对路径,从机的测试数据绝对路径或相对路径均可。
2、从机若的Vm影响远程链接。如下图:

解决办法:

关闭虚拟机,并撤销共享盘。

原因是:从机安装有vm或将某个盘设置了共享权限的时候,主机在配置该从机时除IP地址外,虚拟机ip或者共享盘ip也会出现在远程连接待选列表中,连接时报错。

3、运行报:outofmemery错误

修改jmeter.bat设置的内存大小

解决办法:

修改D:\apache-jmeter-2.13\bin\jmeter.bat文件。

set HEAP=-Xms256m -Xmx256m
set NEW=-XX:NewSize=128m -XX:MaxNewSize=128m
改为:
set HEAP=-Xms256m -Xmx1024m
set NEW=-XX:NewSize=128m -XX:MaxNewSize=512m
根据经验,heap最多设置为物理内存的一半,默认设置为512M.如果heap超过物理内存的一半,可能运行jmeter会慢,甚至出现内存溢出,原因java比较吃内存,占CPU。
4、主从机不在同一网段报:远程链接错误。如图:
解决办法:
1、主从机选择同一个网段内;
2、关闭从机的防火墙。
以上为我在jmeter分布式部署当中遇到的一些问题,在此做以说明。

Jmeter利用JDBC Connection Configuration从数据库读取数据并关联变量

1、下载mysql jar包

下载地址:http://pan.baidu.com/s/1c2bo8Q

密码:gh62

查看jar包支持的mysql版本:

http://dev.mysql.com/doc/connector-j/en/connector-j-versions.html

查看mysql数据库版本:SELECT VERSION();

注:如果下载的jar包版本不支持mysql数据库,运行Jmter时可能会报错:no suitable driver found for jdbc:mysql//……..

为Jmeter添加jar文件

下载后解压.zip文件,把mysql-connector-java-x.x.x-bin.jar(例中:mysql-connector-java-commercial-5.1.25-bin.jar)放到Jmeter安装目录下的lib目录下(例中:D:\Program Files\apache-jmeter-2.13\lib)
下面我将从数据库查询所有的产品id,并将产品id作为参数传入下一个请求。

步骤如下:

2、启动jmeter客户端,添加 JDBC Connection Configuration元件

右键线程组–>添加–>配置元件–>JDBC Connection Configuration。

配置如下图所示:

 

配置信息说明:

Database URL:jdbc:mysql://mysql_host_ip:mysql_port/mysql_db_name

JDBC Driver class:com.mysql.jdbc.Driver

username:数据库用户名

password:数据库密码

3、添加JDDBC REQUEST 元件

右键线程组–>添加–>sampler–>JDBC  REQUEST

配置如下图所示:

 

配置信息说明:

Variable name:此处填写添加jdbc connection configure时填写的变量名,以便建立关联

4、添加 后置处理器 元件

右键线程组–>添加后置处理器–>正则表达式

配置如下图所示:

 

本例中,我只提取前一个请求返回的产品id

5、添加sampler 元件。

目的:将前一个请求返回值作为参数传递给该请求

右键线程组–>添加–>sampler–>HTTP  REQUEST

配置如下图所示:

配置信息说明:

用${}来调用后置处理器的。此处的变量名填写后置处理器的引用名称,以便建立后置处理器与下一个请求之间的关联

6、添加结果树

目的:方便查看运行结果

右键线程组–>添加–>监听器–>查看结果树

7、运行测试计划。

运行测试计划。运行结果如下图:

至此,jmeter链接数据库以及关联变量到此结束。

 

jmeter windows下分布式部署

前提条件:

  1. 主从机在同一网段内
  2. 主从机关闭防火墙
  3. 主从机使用同一版本的jmeter、jmeter插件、jdk

主从机配置:

  1. 开始—->运行。输入cmd进入dos窗口,ipconfig获取从机ip地址
  2. 在主机找到Jmeter  bin目录下jmeter.properties文件,修改如下:
    •  remote_hosts=从机1ip地址:1099,从机2ip地址:1099
    • 注释掉如下行:server_port=1099;server.rmi.localport=1099
    • 其中:1099为jmeter默认端口,用户可自定义。

启动主从机:

  1. 从机启动jmeter-server.bat 脚本
  2. 主机启动jmeter.bat,并配置测试计划;若测试计划中含有csv data set config元件,则必须在从机的相同目录下拷贝一份csv的参数文件。
  3. 在jmeter  GUI界面,点击“运行—->远程启动  ”选择某一个从机来进启动,也可启动全都的从机

docker 实例

注:本章节所有的实例操作在window系统下!!!

nginx

在C:/Users目录下新建nginx_root目录,新建一个index.html文件,里面写个helloworld

docker run -it --name nginx -v /c/Users/nginx_root:/usr/share/nginx/html -p 80:80 nginx
docker-machine.exe ls

浏览器输入上面命令中的IP地址访问,显示helloworld

下面来解释一下
先进入这个镜像看看,另起一个终端

@FOR /f "tokens=*" %i IN ('docker-machine.exe env default') DO @%i
docker exec -it nginx bash
cat /etc/nginx/conf.d/default.conf

这里就是nginx的配置信息,上面/usr/share/nginx/html和端口号就是根据整理来的。

再来说说/c/Users/nginx_root这个地址

我们先打开virtualbox的客户端,default->设置->共享文件夹,可以看到 c/Users\ \?\c:\Users,然后我们进default系统

docker-machine.exe ssh default
ls /c/Users/

是不是发现本地c:\Users目录和default的c/Users做了一个映射,然后我们的镜像其实是在default的映射目录再挂载过来的目录,所以上面为什么写的是/c/Users/nginx_root,其实是c:\Users\nginx_root目录

流程是这样:
virtualbox的default系统挂载了本地系统的C:/users目录,目录为/c/Users
我们的nginx镜像挂载了default的/c/Users/nginx_root目录,目录为/usr/share/nginx/html
最终/usr/share/nginx/html挂载的是本地系统的C:/users/nginx_root目录

docker安装

一、centos6.x下安装docker

先更新系统

yum update

查看

uname -r

2.6.32-xx..x86_64

如果没有更新过内核应该是2.6.x-x的版本

升级内核。

我们用的是带aufs模块的3.10内核,自己编译太复杂,加一个源,找个现成的,操作如下:

vi /etc/yum.repos.d/hop5.repo

复制下面内容

[hop5]
name=www.hop5.in Centos Repository
baseurl=http://www.hop5.in/yum/el6/
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-HOP5

保存退出 :wq

安装 kernel-ml-aufs kernel-ml-aufs-devel

yum install kernel-ml-aufs kernel-ml-aufs-devel

装好重启,在启动页面选择3.10.x的内核

查看

uname -r

3.10.5-3.el6.x86_64

内核就升级好了。

接下来安装docker

6.x的版本源上没有docker.io,所以我们再增加一个源

yum install epel-release-6-8.noarch.rpm

然后

yun install docker-io

安装好后

service docker start

没有什么问题的话就算好了。有问题的话看红色字,是否有和你同样的问题

测试一下看看

docker run hello-world

出现

Hello from Docker!
This message shows that your installation appears to be working correctly.

就说明成功了!

如果出现 Error starting daemon: Couldn’t create Tag store: EOF 什么错误

rm -rf /var/lib/docker/repositories-devicemapper

如果出现 key.json 什么错误

rm -f /etc/docker/key.json

二、官方centos安装

参照https://docs.docker.com/engine/installation/linux/centos/

我没有按照这个流程,你们可以试试

三、window7安装

下载
virtualbox(https://www.virtualbox.org)
安装

下载
docker-machine
(https://github.com/docker/machine/releases/) 根据自己的系统下载32或64位
下载好后改个文件名,后面好操作
docker-machine-Windows-x86_64.exe -> docker-machine.exe

下载docker
(https://github.com/docker/docker/releases) 根据自己的系统下载32或64位

打开命令行:

docker-machine.exe create -d "virtualbox" default

慢慢等待,因为用的是virtualbox所以要下一个docker系统,通常比较慢,当前你也可以直接先下载,然后复制到docker的缓存目录,但是版本变了又要重新下,为了不产生新的麻烦,暂时就忍忍等待下完。

完了以后大概字样

To see how to connect your Docker Client to the Docker Engine running on this virtual machine, run: docker-machine.exe env default

接下来运行

docker-machine.exe env default

这个命令只要是告诉你要怎么样来更新当前的环境变量,只要执行最后一句就可以了

SET DOCKER_TLS_VERIFY=1
SET DOCKER_HOST=tcp://192.168.99.100:2376
SET DOCKER_CERT_PATH=C:\Users\Administrator\.docker\machine\machines\default
SET DOCKER_MACHINE_NAME=default1
SET COMPOSE_CONVERT_WINDOWS_PATHS=true
REM Run this command to configure your shell:
REM @FOR /f “tokens=*” %i IN (‘docker-machine.exe env default’) DO @%i

@FOR /f "tokens=*" %i IN ('docker-machine.exe env default') DO @%i

接下来就可以开始了,是不是很简单!

四、官方window7安装

参照https://docs.docker.com/docker-for-windows/

 

最后感谢网上各位朋友的教程文章。

特殊字符

♫♬♪♩♭♥♡☜☞◎♦◊◈☆❤ⓛⓞⓥⓔ╬『』☀。◕‿◕。の★▶☺☻►◄↔↕♦◊◦♠♣☆♂♀☎☏➸✱✿❆ღ゚ღ❆ﻬஐﻬ❆ღ゚ღ❆✿ﻬஐﻬ✿╰☆╮≈➽ⓛⓞⓥⓔஐ卐※ξ●•ღ&≈♣ஐ∞↘↙ωண✗↔∑∮々~εїз➽∩@の☼❤♡☊☋£☀☂→←Ψ¤╰☆╮)♂♀﹌оО❥♈♠♣☜☞➸∴。◕‿◕。✘✚★☆∷░▒☎⊹⊱⋛⋌⋚⊰⊹◕。oO.♥.:✿*゚¨゚゚・☀╮✔✕╬〓『』►◄【】〖〗☁凸◆◇▲△▼▽●〇◎◕‿-┱┲✣✤✥✦✧✩✫✬✭✮✯✰✱✲✳❃❂❁❀✿✾✽✼✻✺✹✸✷✶✵✴❄❅❆❇❈❉❊❋❖✱✲✳❃❂❁❀✿✾✽✼✻✺✹✸✷✶✵✴❄❅❆❇❈❉❊❋❖ⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜⓝⓞⓟⓆⓠⓡⓢⓣⓤⓥⓦⓧ№DêMЁ™㊚㊛㊣㊀㊁㊂㊃㊄㊅㊆㊇㊈㊉㊊♠♣▣▤▥▦▩▨