博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
接口自动化框架(java)--5.通过testng.xml生成extentreport测试报告
阅读量:5153 次
发布时间:2019-06-13

本文共 4782 字,大约阅读时间需要 15 分钟。

 这套框架的报告是自己封装的

 

由于之前已经通过Extentreport插件实现了Testng的IReport接口,所以在testng.xml中使用listener标签并指向实现IReport接口的那个类就可以替换原始的testngreport

testng配置如下:

单suite,单test

test name 指向你写的testCase,methods放入需要执行的方法

1 
2 3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

 

测试用例中使用Reporter.log方法可以在生成的report中对应的接口里增加你想要呈现的属性,比如状态码,接口地址

1 package com.qa.tests; 2   3 import com.alibaba.fastjson.JSON; 4 import com.qa.base.TestBase; 5 import com.qa.Parameters.postParameters; 6 import com.qa.restclient.RestClient; 7 import com.qa.util.TestUtil; 8 import org.apache.http.client.methods.CloseableHttpResponse; 9 import org.testng.Assert;10 import org.testng.Reporter;11 import org.testng.annotations.BeforeClass;12 import org.testng.annotations.DataProvider;13 import org.testng.annotations.Test;14  15 import java.io.IOException;16 import java.util.HashMap;17  18 import static com.qa.util.TestUtil.dtt;19  20 public class testCase1 extends TestBase {21     TestBase testBase;22     RestClient restClient;23     CloseableHttpResponse closeableHttpResponse;24     //host根url25     String host;26     //Excel路径27     String testCaseExcel;28     //header29     HashMap
postHeader = new HashMap
();30 @BeforeClass31 public void setUp(){32 testBase = new TestBase();33 restClient = new RestClient();34 postHeader.put("Content-Type","application/json");35 //载入配置文件,接口endpoint36 host = prop.getProperty("Host");37 //载入配置文件,post接口参数38 testCaseExcel=prop.getProperty("testCase1data");39 40 }41 42 @DataProvider(name = "postData")43 public Object[][] post() throws IOException {44 return dtt(testCaseExcel,0);45 46 }47 48 @DataProvider(name = "get")49 public Object[][] get() throws IOException{50 //get类型接口51 return dtt(testCaseExcel,1);52 }53 54 @DataProvider(name = "delete")55 public Object[][] delete() throws IOException{56 //delete类型接口57 return dtt(testCaseExcel,2);58 }59 @Test(dataProvider = "postData")60 public void login(String loginUrl,String username, String passWord) throws Exception {61 //使用构造函数将传入的用户名密码初始化成登录请求参数62 postParameters loginParameters = new postParameters(username,passWord);63 //将登录请求对象序列化成json对象64 String userJsonString = JSON.toJSONString(loginParameters);65 //发送登录请求66 closeableHttpResponse = restClient.postApi(host+loginUrl,userJsonString,postHeader);67 //从返回结果中获取状态码68 int statusCode = TestUtil.getStatusCode(closeableHttpResponse);69 Assert.assertEquals(statusCode,200);70 Reporter.log("状态码:"+statusCode,true);71 Reporter.log("接口地址: "+loginUrl);72 }73 74 @Test(dataProvider = "get")75 public void getApi(String url) throws Exception{76 closeableHttpResponse = restClient.getApi(host+ url);77 int statusCode = TestUtil.getStatusCode(closeableHttpResponse);78 Assert.assertEquals(statusCode,200);79 Reporter.log("状态码:"+statusCode,true);80 Reporter.log("接口地址: "+url);81 }82 83 @Test(dataProvider = "delete")84 public void deleteApi(String url) throws Exception{85 System.out.println(url);86 closeableHttpResponse = restClient.deleteApi(url);87 int statusCode = TestUtil.getStatusCode(closeableHttpResponse);88 Assert.assertEquals(statusCode,204);89 Reporter.log("状态码:"+statusCode,true);90 Reporter.log("接口地址: "+url);91 }92 93 @BeforeClass94 public void endTest(){95 System.out.print("测试结束");96 }97 98 }

 

运行testng.xml后在test-output目录下找到Index.html,每次执行都会刷新测试报告

 

2.testng.xml多条testcase的情况下,test name 会变成报告的testname

1 
2 3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

 

 

 

 原文地址

 

转载于:https://www.cnblogs.com/111testing/p/10624847.html

你可能感兴趣的文章
淌淌淌
查看>>
win10每次开机都显示“你的硬件设置已更改,请重启电脑……”的解决办法
查看>>
C++有关 const & 内敛 & 友元&静态成员那些事
查看>>
函数积累
查看>>
Swift 入门之简单语法(六)
查看>>
〖Python〗-- IO多路复用
查看>>
栈(括号匹配)
查看>>
Java学习 · 初识 面向对象深入一
查看>>
源代码如何管理
查看>>
vue怎么将一个组件引入另一个组件?
查看>>
bzoj1040: [ZJOI2008]骑士
查看>>
LeetCode 74. Search a 2D Matrix(搜索二维矩阵)
查看>>
利用SignalR来同步更新Winfrom
查看>>
反射机制
查看>>
CocoaPod
查看>>
BZOJ 1251: 序列终结者 [splay]
查看>>
5G边缘网络虚拟化的利器:vCPE和SD-WAN
查看>>
MATLAB基础入门笔记
查看>>
【UVA】434-Matty's Blocks
查看>>
Android开发技术周报 Issue#80
查看>>