首页 > 其他 > 详细

接口测试02

时间:2020-04-03 19:12:38      阅读:62      评论:0      收藏:0      [点我收藏+]
1 jmeter特点
2 jmeter安装启动
3 jmeter中的元件
4 jmeter实战
5 使用jmeter实现自动化接口测试

 

1 jmeter特点

jmeter有一下特点:

  • 免费、开源的
  • 纯java语言开发
  • 需要安装jdk:java development kit

2 jmeter安装启动

jmeter安装启动步骤:
解压即可:apache-jmeter-2.13.tgz
目录

  1. bin:存放的是启动文件
  2. extras:里面存放的是实现接口自动化时的ant包

启动:在bin目录下双击jmeter.bat文件即可

3 jmeter中的元件

jmeter元件介绍:

测试计划所有的请求或其他操作都存在测试计划中

线程组:所有的操作都属于一个线程

取样器sampler:存放的是请求

断言:对结果进行判断

监听器:对结果进行收集

4 jmeter实战

4.1 get请求模拟


4.2 post请求模拟

 

4.3 接口间参数传递

正则表达式提取器---->在后置处理器中找到

1)引用名称:变量名

2)正则表达式内容:通过左右边界的内容提取

3)模板:如果提取的参数有多个那么写相应的模板,如果为1个参数:$1$,如果为两个参数:$2$,参数为多个:$n$

4)匹配数字
      0代表随机取,1取第一个,2取第二个..., -1取全部
5)缺省值
      如果取出数据为空,则给默认值

使用变量:${变量名}

4.4 参数化

方式一、通过读取csv、txt文件获取数据
选中线程组--->配置元件--->CSV Data set config
1)填写内容
Filename:包括路径
变量名variable names
变量名之间用英文逗号隔开

2)然后使用${变量名}来读取文件每一列内容

注意:通过文件的行数来决定读取内容


方式二、通过函数助手读取csv、txt文件
选项菜单-->函数助手对话框--->__CSVRead函数

填写文件路径和列号(列号从0开始)

点击生成变量即可

注意:函数助手是按照不同用户读取文件内容


方式三、通过用户参数设置数据
选中线程组--->添加前置处理器中的用户参数选项

通过添加变量和用户来构造多条数据

注意:是由不同的用户决定读取的内容

5 使用jmeter实现自动化接口测试

5.1 配置Jmeter环境变量

JMETER_HOME:D:\测试软件\jmeter\jme压缩\apache-jmeter-2.13

Path:%JMETER_HOME%\bin

ClassPath:%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib/logkit-2.0.jar;

验证是否配置成功:在dos窗口输入jmeter

注意:(JMETER_HOME这个是新建的,其余两个是编辑的。前面要加英文分号,如果有,就不加了)

 

环境变量相关配置

1.电脑桌面----》“计算机”图标----》鼠标右键选择“属性”----》点击高级系统设置----》高级---》环境变量页面

技术分享图片

2.开始配置环境变量了。在系统变量框,点击“新建”,建立一个变量:JMETER_HOME,值为你解压的jmeter安装路径。我的安装路径:D:\测试软件\jmeter\jme压缩\apache-jmeter-2.13 。然后点击3次确定进行保存即可。注意:一定要选择系统变量进行修改。

技术分享图片

3.在系统变量中找到Path,ClassPath变量,因为有其他值,在其后面进行添加下面的值即可。注意:要在前面分号

Path:%JMETER_HOME%\bin

ClassPath:%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib/logkit-2.0.jar;

 

4.验证环境变量配置的是否正确

第一种启动jmeter方式:cmd   jmeter

会出现jmeter界面,说明就配置成功。因为都把jmeter启动起来了。

技术分享图片

还第二种启动jmeter方式:首先进到你的jmeter安装路径,找到bin文件夹,点击进去,找到jmeter.bat双击

如果觉得麻烦,可以鼠标右键jmeter.bat,快捷方式发送电脑桌面,就会方便很多。

技术分享图片

5.2 搭建自动化接口测试框架

创建如下目录结构:test

技术分享图片

test下:ant   data  JmeterAutoTest

1)ant:放解压好的ant软件

2)data:放数据

3)JmeterAutoTest 下:

  • app   pc

pc下:

  • resultlog   script

resultlog下:

  • html  jtl  (报告生成区)

script:脚本区

5.3 安装以及配置ant环境变量

ANT_HOME:       G:\2020软件测试代码\3_接口及性能测试\接口测试\day2\项目框架\test\ant\apacheAnt
Path:                    ;%ANT_HOME%\bin
CLASSPATH:      ;%ANT_HOME%\lib
验证是否配置成功:在dos 创建输入:ant -version

技术分享图片 

5.4 发送邮件&修改build.xml文件

1)3个jar文件拷到ant---lib文件下(发送邮件)

2)build.xml文件拷到pc目录下

 

修改build.xml文件

改成自己本地的jmeter

<!-- 需要改成自己本地的 Jmeter 目录-->
<property name="jmeter.home" value="D:\测试软件\jmeter\jme压缩\apache-jmeter-2.13" />

改成自己的jtl路径

<!-- jmeter生成jtl格式的结果报告的路径-->
<property name="jmeter.result.jtl.dir" value="G:\2020软件测试代码\3_接口及性能测试\接口测试\day2\项目框架\test\JmeterAutoTest\pc\resultlog\jtl" />

改成自己的html路径

<!-- jmeter生成html格式的结果报告的路径-->    
<property name="jmeter.result.html.dir" value="G:\2020软件测试代码\3_接口及性能测试\接口测试\day2\项目框架\test\JmeterAutoTest\pc\resultlog\html" />

project   pc   pc前目录。如果是移动端,可改成app

<project name="pc" default="all" basedir="G:\2020软件测试代码\3_接口及性能测试\接口测试\day2\项目框架\test\JmeterAutoTest">

声明要运行的脚本路径

<!-- 声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本 -->
<testplans dir="G:\2020软件测试代码\3_接口及性能测试\接口测试\day2\项目框架\test\JmeterAutoTest\pc\script" />

 

build.xml完整代码

技术分享图片
<?xml version="1.0" encoding="utf-8"?>
<project name="pc" default="all" basedir="G:\2020软件测试代码\3_接口及性能测试\接口测试\day2\项目框架\test\JmeterAutoTest">
    <tstamp>
        <format property="time" pattern="yyyyMMddhhmm" />
    </tstamp>
    <!-- 需要改成自己本地的 Jmeter 目录-->
    <property name="jmeter.home" value="D:\测试软件\jmeter\jme压缩\apache-jmeter-2.13" />
    <!-- jmeter生成jtl格式的结果报告的路径-->
    <property name="jmeter.result.jtl.dir" value="G:\2020软件测试代码\3_接口及性能测试\接口测试\day2\项目框架\test\JmeterAutoTest\pc\resultlog\jtl" />
    <!-- jmeter生成html格式的结果报告的路径-->    
    <property name="jmeter.result.html.dir" value="G:\2020软件测试代码\3_接口及性能测试\接口测试\day2\项目框架\test\JmeterAutoTest\pc\resultlog\html" />
    <!-- 生成的报告的前缀 -->
    <property name="ReportName" value="TestReport" />
    <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" />
    <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}${time}.html" />
    <!-- 接收测试报告的邮箱 -->
    <property name="mail_from" value="yangcheng_2020@163.com" />
    <property name="mail_to" value="1273844671@qq.com" />
    <!-- 电脑地址 -->
     <!-- <property name="ComputerName" value="jkqsh-l0285" />-->
    <target name="all">
        <antcall target="test" />
        <antcall target="report" />
        <antcall target="send" />
    </target>
    <target name="test">
        <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
        <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
            <!-- 声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本 -->
            <testplans dir="G:\2020软件测试代码\3_接口及性能测试\接口测试\day2\项目框架\test\JmeterAutoTest\pc\script" />
        </jmeter>
    </target>

    <path id="xslt.classpath">
        <fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>
        <fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>
    </path>

    <target name="report">
        <xslt
        classpathref="xslt.classpath"
            force="true"
        in="${jmeter.result.jtlName}" 
        out="${jmeter.result.htmlName}" 
        style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl">
            <param name="dateReport" expression="${time}"/>
    </xslt>
        <!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 -->
        <copy todir="${jmeter.result.html.dir}">
            <fileset dir="${jmeter.home}/extras">
                <include name="collapse.png" />
                <include name="expand.png" />
            </fileset>
        </copy>
    </target>
    <!-- 发送邮件 -->
    <target name="send" >
        <mail mailhost="smtp.163.com" mailport="25" subject="Test Report!" messagemimetype="text/html" user="yangcheng_2020@163.com" password="zyc19930823CC" >
        <from address="${mail_from}"/>
        <to address="${mail_to}"/>
        <message>This email was sent automatically by ANT. Please check the automation test report. Thank you!</message>
        <attachments> 
            <fileset dir="${jmeter.result.html.dir}">
                <include name="${ReportName}${time}.html"/>
            </fileset>
        </attachments>
        </mail>
    </target>
</project>
View Code

 

启动ant 执行脚本:cmd    进入pc目录下  输入ant   执行脚本,会生成测试报告(下面发送邮件配置好后,也是这样执行。会生成测试报告,并发送邮件。)

技术分享图片

 

发送邮件:还是改build.xml文件的东西。我没完成

发送邮件邮箱,接受邮件邮箱

<!-- 接收测试报告的邮箱 -->
<property name="mail_from" value="yangcheng_2020@163.com" />
<property name="mail_to" value="1273844671@qq.com" />

发送邮件的邮箱用户名,密码,端口

<mail mailhost="smtp.163.com" mailport="25" subject="Test Report!" messagemimetype="text/html" user="yangcheng_2020@163.com" password="zyc19930823CC" >

注意:这里是163邮箱,密码直接是163邮箱登陆时的密码。端口是:25。

如果是qq邮箱的密码,就不是登陆的密码。而需要登陆qq邮箱,发送短信,去获取密码(授权码)。qq的端口:465。mailhost="smtp.qq.com"

<mail mailhost="smtp.qq.com" mailport="465" subject="Test Report!" messagemimetype="text/html" user="1071183139@qq.com" password="zyc19930823CC" >

 

qq设置获取密码:

1)登录电脑版QQ邮箱,选择最上方的“设置”

技术分享图片

 2)如图选择“账户”,切换到账户详情页面。

技术分享图片

 3)在账户页面往下拉,可以看到smtp设置,选择“开启”。

技术分享图片

4) 按照弹出的窗口提示操作进行密保验证。有多种方式可以验证,比如手机令牌等。推荐使用短信验证。

5)按照短信验证的提示发送短信。发送成功后直接点击“我已发送”。

技术分享图片

 6)弹出的提示中直接显示16位的授权码,可以复制下来,或者是记下来,千万不要记错了。然后点击“确定”。

技术分享图片

 以上就完成了qq密码(授权码)的获取。

5.5 使用jenkins实现持续集成

将jenkins搭建在tomcat下

1)需要安装tomcat:解压tomcat7.rar,解压完就安装好了。

2)jenkins.war复制到:D:\测试软件\jmeter\tomcat压缩\tomcat7\webapps   

注意如果有选择替换就可以。本篇博客其余处要拷贝的也是这样。

3)启动tomcat----bin-----startup.bat(双击)

 

tomcat闪退、启动失败原因
1)端口被占用

修改tomcat端口

tomcat7-->conf-->server.xml文件--->在该文件下将默认的8080端口修改即可 

例如:port:8090

2)异常退出

正确退出方法:1.ctrl+c命令 2.在tomcat7的bin目录下点击shutdown.bat

 

输入网址:http://ip:端口/jenkins

例如:http://localhost:8080/jenkins/

技术分享图片

jenkin构建任务
1)新建-->输入item名称,选择“构建一个自由风格的软件项目”

技术分享图片

2)构建触发器

  • 选择Build periodically
  • 定义脚本执行的频率

日程表:H/2 * * * *(表示每2分钟执行)

技术分享图片

3)构建--->选择invoke ant--->在build file位置输入build.xml文件的路径,保存

补充:

技术分享图片

 4)点击返回面板选中该任务-->选择立即构建即可。就可以调用ant,执行打包过程。在这里,也就是执行生成测试报告的步骤

技术分享图片

 

接口测试02

原文:https://www.cnblogs.com/zhangyangcheng/p/12628314.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!