# Java-autoTest
## 基于 Java 的接口自动化测试
##[我的博客](https://blog.csdn.net/jianghao233/article/details/82423666)
## 一、接口自动化测试
## 1.接口定义
接口:对外暴露的一个统一规范的接入点。
<img src="http://pe9izua1e.bkt.clouddn.com/%E6%8E%A5%E5%8F%A3.png" width="850" hegiht="313" align=center />
## 2.为什么要做接口测试
1.更容易实现持续集成(背景就是第三点)
如何理解持续集成:
说背景---大型系统更多更复杂,系统间模块越来越多,组装的过程中出现的问题也越来越多,需要不断的迭代,不断的解决问题
2.自动化测试落地性性价比更高、比UI更稳定
3.大型系统更多更复杂,系统间模块越来越多
4.BUG 更容易定位,分模块进行测试
5.降低开发成本、提高效率(bug 发现越早,修复成本越低)
## 3.接口自动化测试开发技能树
1.开发语言:(如 Java)
2.开发框架(如 TestNG、HttpClient)
3.Mock 技术(好处:1.在开发完成之前,要先模拟出接口调试测试代码 2.集成:前后端分离,将接口提供给前端开发人员使用,有测试产出)
4.数据持久层框架(如 MyBatis)
5.持续集成工具 (如 JenKins)
6.接口协议相关知识 (如 HTTP 协议)
## 4.接口自动化测试落地过程
产品开发阶段:
<img src="http://pe9izua1e.bkt.clouddn.com/%E9%A1%B9%E7%9B%AE%E5%BC%80%E5%8F%91%E6%B5%81%E7%A8%8B.png" width="850" hegiht="313" align=center />
1.需求阶段(测试人员了解客户需求、解决用户痛点)
2.研发阶段 (测试人员的价值开始体现,如利用Mock 技术将接口提供给前端,提高整体的开发效率)
3.测试阶段 (测试人员的主要负责阶段)
4.项目上线
## 二、接口测试的用例设计
## 1.接口测试范围
1.功能测试:验证产品逻辑是否正确
<img src="http://pe9izua1e.bkt.clouddn.com/%E5%8A%9F%E8%83%BD%E6%B5%8B%E8%AF%95.png" width="850" hegiht="313" align=center />
2.异常测试
<img src="http://pe9izua1e.bkt.clouddn.com/%E5%BC%82%E5%B8%B8%E6%B5%8B%E8%AF%95.png" width="850" hegiht="313" align=center />
null : 是开发过程中特定指的一个对象为空的端符,就是一个空对象,不指向任何内存地址
" " : 指一个空字符串,代表该对象有值,指向一个空地址
负载均衡架构:测试某一个后台(Tomcat 4)挂了,挂了之后 Tomcat4的请求会直接返回一个错误(前台1个nginx ,后台多个 Tomcat),测试是否会返回这个错误,能否会使用户访问失败;一段时间后,想让 Tomcat4 重新加入,判断能否重新加入集群中并正确处理所有请求。
冷热备份:冷备份不常见,热备份:前面有4个Tomca,后面有4个Tomca备份,如果Tomca4挂了,判断Tomca4的备份能否顶替之前的,仍然保持4个服务器存活;当Tomca4 正常后,判断能够成为Tomca4的备份。
3.性能测试
<img src="http://pe9izua1e.bkt.clouddn.com/%E6%80%A7%E8%83%BD%E6%B5%8B%E8%AF%95.png" width="850" hegiht="313" align=center />
##2.自动化接口测试范围
功能测试 + 数据异常测试
环境异常测试示例:
<img src="http://pe9izua1e.bkt.clouddn.com/%E7%8E%AF%E5%A2%83%E5%BC%82%E5%B8%B8.png" width="850" hegiht="313" align=center />
## 三、手工接口测试到自动化框架设计
## 手工接口测试的常用工具
1.Postman
2.HttpRequest
3.Fiddler(具备抓包和发送请求功能)
半自动化:Jmeter(结果统计方面不完善)
###自动化框架的设计
<img src="http://pe9izua1e.bkt.clouddn.com/%E8%87%AA%E5%8A%A8%E5%8C%96%E6%A1%86%E6%9E%B6%E7%9A%84%E8%AE%BE%E8%AE%A1.png" width="850" hegiht="313" align=center />
## 四、测试框架TestNG
## 1.TestNG 适合测试人员使用的原因:
1.比 Junit 涵盖功能更全面的测试框架
2.Junit 更适合隔离性比较强的单元测试
3.TestNG 更适合复杂的集成测试(特别适合接口测试)
## 2.TestNG 的使用
<img src="http://pe9izua1e.bkt.clouddn.com/TestNG%20%E4%BD%BF%E7%94%A8.png" width="550" hegiht="313" align=center />
## 3.TestNG 基本注解与执行顺序实战
### 1. 方法
### @Test : 最基本的注解,用来把方法标记为测试的一部分
### @BeforeMethod : 在测试方法之前运行的标签
### @AfterMethod : 在测试方法之后运行的标签
### 输出效果:
<img src="http://pe9izua1e.bkt.clouddn.com/%E6%B5%8B%E8%AF%95%E4%B9%8B%E5%89%8D%E4%B8%8E%E6%B5%8B%E8%AF%95%E4%B9%8B%E5%90%8E.png" width="550" hegiht="313" align=center />
### 2. 类
### 使用场景:在类正式运行之前,是否需要注册对象或一些静态的方法或变量赋值在该方法里写,写完之后其他的方法中可以使用;
### @BeforeClass : 在类运行之前运行的方法
### @AfterClass : 在类运行之后运行的方法
### 输出效果:
<img src="http://pe9izua1e.bkt.clouddn.com/%E7%B1%BB%E4%B9%8B%E5%89%8D%E4%B8%8E%E7%B1%BB%E4%B9%8B%E5%90%8E.png" width="550" hegiht="313" align=center />
### 3. 测试套件
Suite 执行顺序在 类 的顺序之前 ,Suite 可以包含多个 class ,这个类属于某个测试套件之下,在运行之前可以包含多个 class,
执行顺序 是 Suite --- class --- Method
### @BeforeSuite : BeforeSuite测试套件
### @AfterSuite : AfterSuite测试套件
### 输出效果:
<img src="http://pe9izua1e.bkt.clouddn.com/%E6%B5%8B%E8%AF%95%E5%A5%97%E4%BB%B6%E5%89%8D%E5%90%8E.png" width="550" hegiht="313" align=center />
### 4. 套件测试实例
### 1.新建 LginTest.java :写测试主要的 Test 下包含的方法,登录测试--淘宝登录成功。
### 2.新建 SuiteConfig.java :写测试套件之前运行的方法(共有的)
### 3.新建 PayTest.java : 支付测试--支付宝支付成功
### 3.新建 Suite.xml :放置测试套件的配置文件--Suite 取名 test(必须有 name 属性),用 test 包裹不同的组件,每个 test 包含 SuiteConfig 与 Test。
### 输出效果:
<img src="http://pe9izua1e.bkt.clouddn.com/%E5%A5%97%E4%BB%B6%E6%B5%8B%E8%AF%952.png" width="550" hegiht="313" align=center />
### 输出顺序:
测试套件包裹的在最外层,suite 先运行,输出 before suite;再运行测试标签 test ,即运行 beforeTest;接着运行第一个测试标签 test 里的 class(Login),输出 淘宝登录成功;
第一个测试标签 test 结束,即运行 aterTest,接着同理运行第二个测试标签 test 里的 class(pay),输出 支付宝支付成功;test 结束,即运行 aterTest;整个测试套件结束,输出 after suite。
### 5. 忽略测试
### 定义:本次测试执行并不想执行这个测试,将其忽略即可
### 新建 IgnoreTest.java : 想忽略测试方法,在 @Test 方法后添加 (enabled = false) 即可;若添加 (enabled = true) 则也会执行,不会忽略。
### 输出效果:
<img src="http://pe9izua1e.bkt.clouddn.com/%E5%BF%BD%E7%95%A5%E6%B5%8B%E8%AF%95.png" width="550" hegiht="313" align=center />
### 6. 组测试中的方法分组测试
### 定义:把很多测试方法归到一个组里面,再进行方法的渲染。
### 新建 groups 包 ,创建 GroupsOnMethod.java :在 @Test 方法后添加 (groups = 名称) 即可,建立 4个 Test ,2个 groups 为 server,2个 groups 为 client;建立 @BeforeGroups("server")、@AfterGroups("server")、@BeforeGroups("client")、 @AfterGroups("client") 输出
### 输出效果:
<img src="http://pe9izua1e.bkt.clouddn.com/%E5%88%86%E7%BB%84%E6%B5%8B%E8%AF%95.png" width="550" hegiht="313" align=center />
### 7. 组测试中的类分组测试
### 创建 GroupsOnClass1.java : 设置 @Test(groups = "stu"),建立 stu1 / stu2 对象,是 GroupsOnClass1
### 创建 GroupsOnClass2.java :设置 @Test(groups = "stu"),建立 stu1 / stu2 对象,是 GroupsOnClass2
### 创建 GroupsO
没有合适的资源?快使用搜索试试~ 我知道了~
基于 Java 的接口自动化测试.zip
共280个文件
class:51个
java:51个
xml:47个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 44 浏览量
2024-03-23
23:40:00
上传
评论
收藏 5.75MB ZIP 举报
温馨提示
基于 Java 的接口自动化测试
资源推荐
资源详情
资源评论
收起资源包目录
基于 Java 的接口自动化测试.zip (280个子文件)
ExtentTestNGIReporterListener.class 10KB
ExtentTestNGIReporterListener.class 10KB
ExtentTestNGIReporterListenerOld.class 9KB
MyCookiesForPost.class 4KB
GetUserInfoListTest.class 4KB
UpdateUserInfoCase.class 4KB
AddUserCase.class 4KB
LoginTest.class 4KB
UpdateUserInfoTest.class 4KB
MyCookiesForGet.class 4KB
User.class 4KB
GetUserInfoTest.class 4KB
MyGetMethod.class 3KB
AddUserTest.class 3KB
User.class 3KB
MyPostMethod.class 3KB
GetUserListCase.class 3KB
LoginCase.class 2KB
SwaggerConfig.class 2KB
User.class 2KB
Demo.class 2KB
DataProviderTest.class 2KB
BasicAnnotation.class 2KB
GroupsOnMethod.class 2KB
GetUserInfoCase.class 2KB
ConfigFile.class 2KB
MyHttpClient.class 1KB
ExtentTestNGIReporterListenerOld$1.class 1KB
ExtentTestNGIReporterListener$1.class 1KB
ExtentTestNGIReporterListener$1.class 1KB
InterfaceName.class 1KB
MultiThreadOnXml.class 1KB
SuiteConfig.class 1KB
SampleController.class 1KB
Application.class 1KB
TestMethodsDemo.class 1KB
DatabaseUtil.class 1006B
ParamterTest.class 986B
MultiThreadOnAnnotion.class 954B
ExpectedException.class 897B
IgnoreTest.class 848B
GroupsOnClass3.class 787B
GroupsOnClass1.class 773B
GroupsOnClass2.class 771B
test.class 761B
DependTest.class 761B
Application.class 748B
TimeOutTest.class 693B
LoginTest.class 610B
PayTest.class 606B
TestConfig.class 563B
.classpath 1KB
.classpath 1KB
.classpath 1KB
.classpath 1KB
.classpath 1KB
.classpath 1KB
.classpath 1KB
.classpath 295B
testng-reports.css 5KB
testng.css 303B
collapseall.gif 157B
.gitignore 28B
report.html 26KB
index.html 24KB
index.html 24KB
index.html 19KB
emailable-report.html 4KB
用户管理系统测试用例.html 4KB
testng.xml.html 3KB
methods-alphabetical.html 3KB
methods.html 3KB
emailable-report.html 3KB
classes.html 2KB
toc.html 1KB
index.html 782B
groups.html 389B
index.html 203B
main.html 136B
methods-not-run.html 50B
reporter-output.html 39B
Chapter11.iml 7KB
Chapter13.iml 7KB
Chapter10.iml 5KB
Chapter12.iml 3KB
Chapter6.iml 2KB
Chapter9.iml 1KB
main.iml 1KB
Chapter5.iml 1007B
moco-runner-0.11.0-standalone.jar 6.12MB
Chapter12-1.0-SNAPSHOT.jar 32KB
Chapter10-1.0-SNAPSHOT.jar 6KB
ExtentTestNGIReporterListener.java 9KB
ExtentTestNGIReporterListener.java 9KB
ExtentTestNGIReporterListenerOld.java 8KB
MyCookiesForPost.java 4KB
UserManager.java 3KB
LoginTest.java 3KB
MyGetMethod.java 3KB
UpdateUserInfoTest.java 3KB
共 280 条
- 1
- 2
- 3
资源评论
Kwan的解忧杂货铺
- 粉丝: 1w+
- 资源: 3651
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功