一、自动化测试:
1、接口自动化
2、ui自动化
  web端
  移动端 android,ios

二、接口测试工具

postman
jmeter

三、接口分类:
接口:
什么是接口呢?接口一般来说有两种,一种是程序内部的接口,一种是系统对外的接口。
系统对外的接口:
比如你要从别的网站或服务器上获取资源或信息,别人肯定不会把数据库共享给你,他只能给你提供一个他们写好的方法来获取数据,你引用他提供的接口就能使用他写好的方法,从而达到数据共享的目的,比如说咱们用的app、网址这些它在进行数据处理的时候都是通过接口来进行调用的。
程序内部的接口:
方法与方法之间,模块与模块之间的交互,程序内部抛出的接口,比如bbs系统,有登录模块、发帖模块等等,那你要发帖就必须先登录,要发帖就得登录,那么这两个模块就得有交互,它就会抛出一个接口,供内部系统进行调用。

或:
webservice接口:走soap协议 xml格式传输
http api接口:走http协议,请求是key-value,返回一般是json串,json串是通用的数据类型

三、接口文档包含:

接口说明
调用url
请求方法(get/post)
请求参数,参数类型,请求参数说明
返回参数说明

什么是接口测试呢?
接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。 --百度百科
其实接口测试就和普通功能测试没什么区别,区别就是功能测试是在页面上点点点,在页面上输入值,提交数据看结果,而接口测试没有页面,通过接口规范文档上的调用地址、请求参数,拼接报文,然后发送请求,检查返回结果。

接口测试流程:
一、需求评审,熟悉业务和需求
二、开发提供接口文档
三、编写接口测试用例
四、用例评审
五、提测后开始测试
六、提交测试报告

每发出一个http请求之后,都会有一个响应,http本身会有一个状态码,来标示这个请求是否成功,常见的状态码有以下几种:
1、200 2开头的都表示这个请求发送成功,最常见的就是200,就代表这个请求是ok的,服务器也返回了。
2、300 3开头的代表重定向,最常见的是302,把这个请求重定向到别的地方了,
3、400 400代表客户端发送的请求有语法错误,401代表访问的页面没有授权,403表示没有权限访问这个页面,404代表没有这个页面
4、500 5开头的代表服务器有异常,500代表服务器内部异常,504代表服务器端超时,没返回结果

接口测试用例模板:
咱们测试接口的话,肯定要写测试用例,写测试用例的话,就要有一个用例模板,那需要有哪些字段呢?
1、项目 是哪个项目的
2、模块 这个接口是属于哪个功能模块的
3、用例id
4、接口名称
5、用例标题 用例是干嘛的
6、请求方式 GET/POST
7、请求url url地址
8、请求参数
9、前置条件 有依赖的时候,比如说要测登录失败3次的
10、结果验证 预期结果
11、请求报文
12、返回报文
13、测试结果 通过/失败
14、测试人员

四、Jmeter 性能测试工具
jmeter查看结果树乱码
  1、在jmeter的bin目录下找到jmeter.properties这个文件
    添加上sampleresult.default.encoding=utf-8
  2、重启jmeter
jmeter body data里面有乱码怎么解决
    1、在jmeter的bin目录下找到jmeter.properties这个文件
添加上jsyntaxtextarea.font.family=Hack
    2、重启jmeter

jmeter 做脚本

jmeter 参数化:
Jmeter参数化的方式有三种
1、用户定义的变量
这种就是为了方便管理参数,只能有一个值,比如说ip地址不经常变化的
2、函数生成器
函数生成器可以参照一定的规则生成数据,这样的比如说生成一些随机数
3、从文件中读取
文件读取就是事先写好一些数据,然后从文件中读取,这样的话,比如说登录接口,账号和密码都是我们事先注册好的

jmeter关联:
我们知道断言是从返回结果中检查有没有预期的值,现在有一个问题,有一个购买商品的接口,必须要先登录才能够购买商品, 那么你调用接口的时候怎么知道是否已经登录了,一般这样的都会在调用的时候传一个token的参数,服务端判断token是否过期或者token是否正确,如果正确的话,那就是登录成功了就可以买东西了。
那么这样的话,你就要先获取到token,token是从呢来的呢,肯定是从登录接口返回的,因为要先登录嘛,那这样就得先调用登录接口, 获取到token,然后把获取到的token传给购买商品的这个接口。
关联就是做这个事的,它就是获取到返回的值,然后保存起来,给别的请求使用,或者做一些其他的处理。

jmeter 操作数据库
1、导入jdbc的jar包,因为jmeter本身不能直接连接mysql,所以需要导入第三方的jar包,来连接mysql
2、创建数据库连接配置,mysql的url、端口号、账号、密码
3、写sql,执行sql
4、查看结果

1、用户定义的变量
2、函数助手里面的
__random
__time
yyyyMMddHHmmdd 时间的格式
jmeter里面取到时间戳是精确到毫秒的
3、文件里面读取
默认不写绝对路径的话,是从jmeter的bin目录下读取文件
文件里面可以写多列,多列的话,以逗号隔开,参数名也要写多个。

3、jmeter 压测
并发用户数
tps:服务端每秒钟处理的请求数
响应时间