JMETER常用操作
1、jmeter做http脚本
Http请求页面内容介绍
添加cookie
线程组-添加-配置元件--HTTP Cookie管理器
添加权限验证
不能使用普通用户修改学生金币,接口文档中标注了只有admin用户有此权限
上传文件
2、jmeter做webservice脚本
3、参数化
用户定义的变量
函数生成器
文件读取--用文件导入的方式导入参数变量
3、关联、断言
它是用来检查返回结果对不对的。
用来验证结果是否正确,如果正确的话,就代表这个请求的返回是正确的,如果没有的话就代表这个请求的结果和我们预期的不一致,这样我们就可以通断言来检查返回结果,测试是否通过。
使用断言就可以不用每次都看察看结果树了,使用断言判断是否成功。
4、操作数据库
需要导入jar包
配置数据库访问信息
数据库 |
驱动 |
数据库url |
mysql |
com.mysql.jdbc.Driver |
jdbc:mysql://host:port/{dbname}?allowMultiQueries=true |
oracle |
org.postgresql.Driver |
jdbc:postgresql:{dbname} |
PostgreSQL |
oracle.jdbc.driver.OracleDriver |
jdbc:oracle:thin:user/pass@//host:port/service |
MSSQL |
com.microsoft.sqlserver.jdbc.SQLServerDriver 或者 net.sourceforge.jtds.jdbc.Driver
|
jdbc:sqlserver://IP:1433;databaseName=DBname 或者 jdbc:jtds:sqlserver://localhost:1433/"+"library"
|
6、jmeter压力测试
设置并发
查看结果(聚合报告)
Linux下运行脚本
在linux下运行即可,linux下运行jmeter是在jmeter的bin目录下的jmeter.sh这个shell脚本。
./jmeter.sh -n –t a.jmx -l res.jtl
-n 代表以没有界面的形式启动
-t 后面加的是测试的脚本
-l 后面加的是测试结果文件
添加压力机
压测的时候,可能由于并发量大,一台机子不够,要使用多台机子一起来发压力,就要添加压力机,添加压力机怎么添加呢
- 运行Jmeter的bin目录下jmeter-sever.bat,linux作为压力机的话,运行jmeter-server
- 然后在作为控制机的jmeter配置文件里添加压力机ip即可,jmeter的配置文件在bin目录下jmeter.properties,添加压力机的时候,在配置文件里面找到remote_hosts添加ip,然后重启jmeter就可以看到远程压力机了
接口测试基础知识
接口测试的概念,接口主要分为两种:系统内部测试(程序中接口方法的调用,比如:Java中的接口和实现类的关系。关键字interface:创建接口类,implements:接口实现类),系统外部测试(前端通过网址访问后端接口,获取后端提供的数据信息)
接口测试是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等;通过接口规范文档上的调用地址、请求参数,拼接报文,然后发送请求,检查返回结果。
每个后台功能完成以后首先通过接口测试(常规数据、异常数据、临界值)检验,接口是否正常,来保证数据传输的正确性,减少成本(前端好改,后端逻辑比较复杂);完成接口测试后再进行前端页面UI测试以及页面输入值的正确性(页面输入值字符串中有空格,检测页面是否在传值过程中过滤掉空格)。
接口文档至少包括:
1、接口说明
2、调用url
3、请求方法(getpost)
4、请求参数、参数类型、请求参数说明
5、返回参数说明
Get请求和post请求的区别:
1.get使用url(url?username=wy&age=23)或cookie传参;而POST将数据放在BODY中。
2、GET的URL会有长度上的限制,则POST的数据则可以非常大。
3、POST比GET安全,因为数据在地址栏上不可见。
4、一般get请求用来获取数据,post请求用来发送数据。
HTTP状态码
每发出一个http请求之后,都会有一个响应,http本身会有一个状态码,来标示这个请求是否成功,常见的状态码有以下几种:
1.200 2开头的表示成功发送请求,并且响应正常
2.300 3开头表示重定向,302,将请求重定向到别的地方了
3.400 400代表客户端发送的请求有语法错误,401代表访问的页面没有授权,403表示没有权限访问这个页面,404代表没有这个页面
4.500 500表示服务器内部异常,504表示服务器端访问超时没有返回结果。
通用接口用例设计
接口安全
1、绕过验证,比如说购买了一个商品,它的价格是300元,那我在提交订单时候,我把这个商品的价格改成3元,后端有没有做验证,更狠点,我把钱改成-3,是不是我的余额还要增加?(不明白这是如何实现的)
2、绕过身份验证,是否普通用户可以拥有超级用户的权限
3、参数是否加密,比如:用户名和密码是否加密, 如果不加密的话,别人拦截到你的请求,就能获取到你的信息了,加密规则是否容易破解。(如何拦截请求)
4、密码安全规则,密码的复杂程度校验
1) 纯数字、纯字母、纯特殊字符
2) 密码长度
3) 数字字母混合
4) 汉字做密码
异常验证
必传非必传、参数类型、入参长度。
接口测试用例模板
咱们测试接口的话,肯定要写测试用例,写测试用例的话,就要有一个用例模板,那需要有哪些字段呢?
1、项目 是哪个项目的
2、模块 这个接口是属于哪个功能模块的
3、用例id
4、接口名称
5、用例标题 用例是干嘛的
6、请求方式 GET/POST
7、请求url url地址
8、请求参数
9、前置条件 有依赖的时候,比如说要测登录失败3次的
10、结果验证 预期结果
11、请求报文
12、返回报文
13、测试结果 通过/失败
14、测试人员
如何测试webservice接口测试
webservice接口怎么测试呢,他不需要你在拼报文了,会给一个webservice的地址,或者wsdl文件,直接在soapui导入,就可以看到这个webservice里面的所有接口,也有报文,直接填入参数调用,看返回结果就可以了。
天气预报wsdl地址:http://www.webservicex.net/globalweather.asmx?wsdl