Jemter之简单的接口测试

发表于:2017-9-06 13:39

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:閉眼聆聽某个角落的孤    来源:51Testing软件测试网采编

  一.简介
  Jmeter是一款优秀的开源测试工具, 是每个资深测试工程师,必须掌握的测试工具,熟练使用Jmeter能大大提高工作效率。
  **开源,他是一款开源的免费软件,使用它你不需要支付任何费用,
  **小巧,相比LR的庞大(最新LR11将近4GB),它非常小巧,不需要安装,但需要JDK环境,因为它是使用java开发的工具。
  **功能强大,jmeter设计之初只是一个简单的web性能测试工具,但经过不段的更新扩展,现在可以完成数据库、FTP、LDAP、WebService等方面的测试。因为它的开源性,当然你也可以根据自己的需求扩展它的功能。
  环境搭建:
  jemter安装地址:http://jmeter.apache.org/
  jemter官方学习地址:http://jmeter.apache.org/index.html
  二.使用jemter做接口测试
  这里我们要注意有两种接口方式是很常用的:get和post,
  下面来演示两者的不同。为了更好的区分,我在这里先简单的演示下它的不同:
  get请求:http://localhost:8080?username=anqi&password=123456
  post请求:http://localhost:8080
  这样看是不是清楚多了
  1.找到你安装的文件夹,找到bin文件夹,运行jemter.bat.打开jemter
  2.新建一个线程组:

  线程数:虚拟用户数。一个虚拟用户占用一个进程或线程。设置多少虚拟用户数在这里也就是设置多少个线程数。
  准备时长:设置的虚拟用户数需要多长时间全部启动。如果线程数为20?,准备时长为10?,那么需要10秒钟启动20个线程。也就是每秒钟启动2个线程。
  循环次数:每个线程发送请求的次数。如果线程数为20?,循环次数为100?,那么每个线程发送100次请求。总请求数为20*100=2000。如果勾选了“永远”,那么所有线程会一直发送请求,一到选择停止运行脚本。
  (这里要做接口测试,所以各个参数为均1。)
  3.添加一个http请求:
  4.例子:我要发送一个get方法的http
  (这里顺路说一下用post请求跟get请求有什么区别,同样是图片来说明)
  我要发送一个post方法的http
  (这里对比一下就很容易看出区别了,get请求直接填就好了,post请求需要添加值)
  名称:本属性用于标识一个取样器,建议使用一个有意义的名称。
  注释:对于测试没有任何作用,仅用户记录用户可读的注释信息。
  服务器名称或IP:HTTP请求发送的目标服务器名称或IP地址。
  端口号:目标服务器的端口号,默认值为80?。
  协议:向目标服务器发送HTTP请求时的协议,可以是http或者是https?,默认值为http
  方法:发送HTTP请求的方法,可用方法包括GET、POST、HEAD、PUT、OPTIONS、TRACE、DELETE等。(一般使用get和post)
  Content encoding:内容的编码方式,默认值为iso8859
  路径:目标URL路径(不包括服务器地址和端口)
  自动重定向:如果选中该选项,当发送HTTP请求后得到的响应是302/301时,JMeter 自动重定向到新的页面。
  Use keep Alive:当该选项被选中时,jmeter 和目标服务器之间使用Keep-Alive方式进行HTTP通信,默认选中。
  Use multipart/from-data for HTTP POST:当发送HTTP POST 请求时,使用Use?multipart/from-data方法发送,默认不选中。
  同请求一起发送参数:在请求中发送URL参数,对于带参数的URL,jmeter提供了一个简单的对参数化的方法。用户可以将URL中所有参数设置在本表中,表中的每一行是一个参数值对(对应RUL中的?名称1=值1)。
  5.点击运行按钮,查看其结果。
  除了使用查看结果树,我们常用的查看数据的方法还有添加聚合报告查看结果。
  得到以下结果页面。
  Label:每个JMeter的element(例如HTTP Request)都有一个Name属性,这里显示的就是Name属性的值
  Samples:表示你这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里显示100
  Average:平均响应时间——默认情况下是单个Request的平均响应时间,当使用了Transaction Controller时,也可以以Transaction为单位显示平均响应时间
  Median:中位数,也就是50%用户的响应时间
  90% Line:90%用户的响应时间
  Note:关于50%和90%并发用户数的含义,请参考下文
  http://www.cnblogs.com/jackei/archive/2006/11/11/557972.html
  Min:最小响应时间
  Max:最大响应时间
  Error%:本次测试中出现错误的请求的数量/请求的总数
  Throughput:吞吐量——默认情况下表示每秒完成的请求数(Request per Second),当使用了Transaction Controller时,也可以表示类似LoadRunner的Transaction per Second数
  KB/Sec:每秒从服务器端接收到的数据量,相当于LoadRunner中的Throughput/Sec
  6.添加断言:右键点击HTTP请求“添加”-->“断言”-->“响应断言”。
  对于自动化测试来说,断言必须要有的,如果没有断言我们只能人眼对比对接口返回的数据,有了断言功能,就会简化这个过程。Jmeter提供了丰富的断言方法来帮助我们完成这个工作。
  要测试的响应字段:响应文本、Document(text)、URL样本、响应信息、Response Headers、Lgnore Staus等选项。虽然接口返回的是Json格式的数据,但对于Jmeter来说返回数据为文本,所以,这里可以勾选“响应文本”
  模式匹配规则:包括、匹配、Equals、Substring。这里只需要验证返回数据中是否包含主要的关键字,所以,这里勾选“包括”。
  要测试的模式:其实就是断言的数据。点击“添加”按钮,输入要断言的数据。
  运行测试:
  再次清除测试数据,点击启动测试,查看结果树,如下图。
  这是个简单的接口测试,适合初学者。
《2023软件测试行业现状调查报告》独家发布~

精彩评论

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号