作者归档:sara

Jmeter五—2.Getting Started

最简单的入门方法是下载最新的版本然后安装它。

下载地址:http://jmeter.apache.org/download_jmeter.cgi

发布版本包含你需要建立和执行的绝大多数测试文件,比如:Web(HTTP/HTTPS),FTP,JDBC,LDAP,Java,JUnit等等。

如果你想测试JDBC的性能,你需要从供应商那里获取合适的JDBC驱动。JMeter是不会提供任何JDBC的驱动的。

JMeter包含JMS的APIjar包,但是不包含JMS客户端的安装启用。如果你想运行JMS的测试用例,你需要从JMS提供者下载合适的jar包。

查看JMeter Classpath 章节获得详细的安装额外jars信息。

下一步,通过建立一个测试计划的用户指导章节来熟悉JMeter的基本操作。(例如,添加和移除测试元件)

最终,通过合适的章节学习如何建立特定类型的用例计划。举例来说,如果你想测试Web 应用程序,那么去看建立一个Web 测试计划这个章节。其他的特定测试计划有:

高级的 Web 测试计划

JDBC

FTP

JMS Point-to-Point

JMS Topic

LDAP

LDAP 扩展

WebServices(SOAP)

一旦你能轻松的用JMeter建立和运行一个测试计划,你将研究各种各样的配置元素(timers,listeners,assertions,and others),能给你的测试计划带了更好的控制。

2.0.1Create Test Plan from Template

用模板创建一个测试计划

你能够用存在的模板创建一个新的测试计划。

建立模板的测试计划,在面板点击文件àTemplates,或者直接点击Templates的按钮。

在弹出框中,你可以在模板选择框中选择需要的模板。

每一个模板的参考资料说明通过模板创建了一个什么样的测试计划。

2.1Requirements

JMeter 要求你估算环境的最低需求。

2.1.1 Java Version

JMeter要求一个全量的JVM6或者更高的版本。

因为JMeter只用了Java 标准API库,不要提bug如果你的JRE由于安装启用问题,运行JMeter失败。

2.1.2Operating Systems

JMeter 是一个纯Java的应用,可以在安装了Java 运行环境的系统中很好的运行。

用JMeter测试支持的操作系统可以参考:

http://wiki.apache.org/jmeter/JMeterAndOperatingSystemsTested

假如你的操作系统没有在支持的列表里面,只要提供了相符的JVM,JMeter也应该可以运行。

2.2可选的

如果你计划使用JMeter的新特性,那么你需要底下列出的一个或多个可选包。

2.2.1 Java Compiler(Java 编译程序)

如果你想创建一个JMeter源码或者开发JMeter插件,那么你需要完整的JDK6或者更高版本。

2.2.2 SAX XML Parser

JMeter自带Apache的 Xerces XML解析器。你也可以选择别的解析器,选择别的解析器的时候,你需要在JMeter的classpath包含类名,还需要更新jmeter.properties文件。

2.2.3Email Support

JMeter可以发送邮件,它可以发送测试结果的邮件,有POP3(S)/IMAP(S)

的采样器,也有SMTP(S)的采样器。

2.2.4 SSL Encryption SSL加密

Jmeter四—13.Building a Monitor Test Plan

建立一个监控的测试计划

在本章节,你将会学习如何建立一个监控web服务器的测试计划。监控器对压力测试和管理服务器很有帮助。随着压力测试,监控器提供额外的服务端执行信息。它也使服务端执行和客户端响应时间之间的关系更明了。作为一个系统管理工具,监控器通过一个控制窗口提供了监控多台服务器的简便方法。监控器被设计与tomcat5 servlet status一起工作。理论上,任何一个servlet容器只要支持JVM(Java Management Extension)都能移植status servlet来提供相同的信息。

对于这些想要在其他服务器或者EJB容器中使用监控器的,Tomcat的status servlet需要和其他容器无修饰的一起使用内存。为了获得线程信息,你需要改变MBeanServer寻找恢复正确的MBeans。

13.1 Adding A Server

第一步是增加一个线程组元件,线程组告诉Jmeter你想要多少进程。当我们用到Jmeter监控功能时,进程一般为1.这对于那些不熟悉的服务器监控很重要。一般来说,对单一的服务器用多个进程是很糟糕的,值得注意的是会产生压力。

增加进程组元件

改变循环次数为永远(或者一个比较大的数字)便于有足够的样本形成。

13.2 HTTP Auth Manager

给线程组元件增加HTTP Authentication Manager。(添加à配置元件àHTTP Authorization Manager)

输入web服务器的用户名和密码

1. 基础URL留空

2. 输入用户名

3. 输入密码

特别提示:监控器只能和Tomcat 5.0.1.9及其以后的版本一起工作。

底下是如果搭建Tomcat的一个简单文档,如果要获得更多搭建Tomcat信息,参考Tomcat的文档。

Tomcat 搭建

一.搜索一下可用软件包:apt-cache search tomcat

apt-get install tomcat7

这是linux下的安装,这次主要还是用一下 win下的来实验好了。

1. 下载 jdk,安装好jdk。

2. 下载tomcat,有安装的和解压的两种。

3. 以解压的为例,配置tomcat的环境变量。

a.新建JAVA_HOME

b.新建CLASSPATH

c.编辑path环境变量,添加%JAVA_HOME%libbin;

d.启动tomcat。在命令启动脚本的一个好处是,报错信息可以直接在控制台显示出来。

4.进入tomcat的管理界面

4.进入tomcat的管理界面
a.配置用户名密码

b.进入tomcat管理界面

13.3 Adding HTTP Request

对线程组增加一个HTTP Request。(添加àSampleràHTTP Request)然后在左边的面板选中HTTP Request元件,更改以下的属性:

1. 将名称改为”Server Status”

2. 输入IP地址或者 主机名

3. 输入端口号

4. 如果你用的是Tomcat服务器,就将路径名设置为”/manager/status”

5. 添加参数名称为XML,值为true。

6. 在窗口底部勾选上”用作监视器”。

13.4 Adding Constant Timer

给线程组增加一个定时器(添加à定时器à固定定时器)。在”线程延迟”输入5000毫秒。通常,间隔时间设置为5s以内会增加服务器的压力。在你开始使用你的测试环境之前,有必要探询一个合适的间隔时间。

13.5 Adding a Listener to Store the Result

如果你想保存服务器的结果,增加一个简单的监听器。如果你想保存结果计算,在监听器输入一个文件名。如果你想同时保存原始数据和统计数据,确保你输入不同的文件名称。

选择线程组元件增加一个Simple Data Writer监听器(添加à监听器àSimple Data Writer)。下一步,你需要确保输出结果的路径和文件存在。你可以在文件名输入框输入路径和文件名也可以选择浏览按钮选择目录和文件名。

13.6Adding Monitor Result

选择测试计划增加一个监听器(添加à监听器à监听器结果)

默认,监听器将选择从采样器返回的第一个连接器结果。连接器前缀的输入框可以被用来选择不同的连接器。如果指定,监控器将选择第一个前缀匹配的连接器。如果找不到匹配的,那么第一个连接器将被选择。

监听器监听的结果有两个标签选项。第一个是”Health”,展示最后一个采样器监听收到的状态。第二个标签是”Performance”,以视图展示系统性能的历史信息。

一个简短的说明关于如何计算health。通常,一个服务器内存溢出会崩溃,或者到达一个很大的进程链接数。举个例子Tomcat5,一次连接的进程超出最大范围,请求将被放置等待序列,直到进程可被执行。

Jmeter入门二—–jmeter简介及一个web登录的例子

Jmeter包含四个部分:

(1) 负载发生器:用于产生负载,通常以多线程或是多进程的方式模拟用户行为。

(2) 用户运行器:通常是一个脚本运行引擎,用户运行器附加在线程或进程上,根据脚本要求模拟指定的用户行为。

(3) 资源生成器:用于生成测试过程中服务器,负载机的资源数据。

(4) 报表生成器:根据测试中获得的数生成报表,提供可视化的数据显示方式。

测试计划元件:

Test Plan(测试计划):用来描述一个性能测试,包含与本次性能测试所有相关的功能。也就是说本次的性能测试是基于一个计划的。

Threads Users线程用户:这个就是我们通常添加运行的线程。通俗的讲一个线程组,可以看做一个虚拟用户组,线程组中的每个线程都可以理解为一个虚拟用户。线程组中包含的线程数量在测试执行过程中不会发生改变的。

测试片段(Test Fragment):测试片段元件是控制器上的一个特殊的线程组,它在测试树上与线程组处于一个层级。它与线程组有所不同,因为它不会被执行,除非它是一个模块控制器或者是被控制器所引用时才会被执行。

控制器:Jmeter有两种类型的控制器:取样器(sample)和逻辑控制器(Logic Controller),用这些原件来驱动一个测试。

Building a web Test Plan

100用户*2request*1次=200个http请求

要建立这个测试计划,你需要用到下面的元素:

Thread Group(线程组)

Http Request(http请求)

Http Request Defaults(http默认请求)

Graph Results(曲线图结果)

一:Adding Users

第一步添加线程组,这也是Jmeter每一个测试必须的,线程组告诉Jmeter你想模拟多少用户,发送请求的频率和他们应该发送多少请求。

下一步,你需要修改默认值:

1. 给线程组提供一个描述性的名称。例如:jmeter users

2. 增加用户的数量。(称为线程数)。输入100

3. 下一个输入框,Ramp-Up period(增强,爬坡期),默认值为1s,改为10s。Jmeter将在10s内启动你所有的用户进程。所以如果我们有100个用户,且设置Ramp-up时间为10s,那么启动每个用户的延长时间为(100users/10s=10users per second)0.1s。如果你设置爬坡时间为0,那么Jmeter会立刻启动你所有的用户进程。

4. 最后,保持循环次数为默认值1.这项告诉Jmeter重复你的测试多少次。如果你输入1,将执行一次测试,想让Jmeter不停地执行测试,勾上永远选项。

第二步:Adding Default HTTP Request Properties

现在我们来定义我们的用户,是时候来定义他们将要执行的任务了。本小节,将会详细的说明HTTP Requests的默认设置。下一节,你将会增加Http Request元素,会用到你在此处定义的默认配置。

添加一个HTTP请求默认值

二:Adding cookie support

几乎所有的web测试都需要用到cookie的支持,除非你的程序明确的没有用到cookies。增加cookies的支持,仅需要在你的测试计划的每个进程组增加一个HTTP cookie Manager。

选择Thread Group-àconfig ElementàHttp Cookie Manage

三.Adding HTTP Request

在测试计划里,我们需要建立两个HTTP Requests。

HTTP请求1 http://gps123.sinaapp.com/wp-login.php

在添加一个HTTP 请求2 ,包含登录post的所有参数。

之所以会提交两个HTTP请求,是为了在HTTP请求1的时候获取cookie的这个参数:wordpress_test_cookie=WP+Cookie+check存放到HTTP Cookie管理器里面。(你只需要添加HTTP Cookie管理器,J
meter会自动添加,无须手动添加。)

四.Adding a Listener to view store the Test Results

最后,你需要给测试计划增加一个监听,这个元件是把你的HTTP Request结果保存成一个文件或者以图表的形式展示。

可以通过响应的数据,判断请求(登录)是否成功。

还可以添加其他的监听器,根据实际情况来添加。

Jmeter简介–安装

Jemter一个纯java的web性能测试工具,当然现在也支持其他的性能测试(ftp,smtp)等。

开源工具,官网http://jmeter.apache.org/

1. 下载jemter

http://jmeter.apache.org/download_jmeter.cgi

支持的协议有:

  • Web – HTTP, HTTPS
  • SOAP
  • FTP
  • Database via JDBC
  • LDAP
  • Message-oriented middleware (MOM) via JMS
  • Mail – SMTP(S), POP3(S) and IMAP(S)
  • MongoDB (NoSQL)
  • Native commands or shell scripts
  • TCP

下载,放到bin目录,运行jmeter.bat。

报错如下:依稀看出是jmeter路径的问题。

我的电脑,加入环境变量,运行成功。不过后来删除了环境变量,运行仍然成功了。莫名的好了。

可能原因是:1.首次运行的时候需要ApacheJMeter.jar文件

2.环境变量开始的时候也是需要的

Selenium用例管理

1.在本地的目录下,新建几个文件/文件夹如下:
error_png是存放错误截图的文件夹
test_case是存放用例的image
log.txt是输出日志的
test_case.py是调用test_case目录下所有的用例脚本。
 
image
执行完成后,发现只执行成功了一个用例。
image
排查:
在命令行下执行该脚本,发现有如下提示。
image
log.txt文件写入冲突。
image
去掉写入log.txt日志的命令,可以成功运行两个用例。
image
解决办法:把用例放到一个脚本中运行,或者每个用例写入不同的log日志文件。
以下是不同的class类代表不同的用例。
image
os.system(‘E:\my-love\selenium\test_case\baidu.py 1>>log.txt 2>&1’)
1>>log.txt代表把stdout定向到log.txt文件。2把stderr定向到1,也就是log.txt文件。
引入htmlrunner
image
image

unittest报错,sys.exit(not self.result.wasSuccessful())

在unittest使用中,可以打开浏览器,却报如下错误:

5IXODO%$]I]UK`KLGZ_K0(N

代码如下:

image

百度搜到的结果是:

http://www.cnblogs.com/herbert/p/3244614.html

image

http://bugs.python.org/issue2821

查看这个bug是2.5版本的.

image

而我的版本是2.7.5.按理说不应该有这个问题.

找不到其他解决途径,我先把python升级2.7.8.

然后运行脚本无报错.

image