# 自动化测试 **Repository Path**: B2b_Ay/auto_test ## Basic Information - **Project Name**: 自动化测试 - **Description**: 基于testNg开发的一款自动化测试框架,项目初开,很多功能还正在完善阶段 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 2 - **Created**: 2022-06-15 - **Last Updated**: 2024-06-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 平台简介 1.内部测试接口。 2.log日志记录。 3.断言 4.自动输出测试报告 5.自定义可视化测试配置 6.监听重试机制正在开发尽情期待... ## 框架依赖Redis缓存,请装配好redis环境 `配置完成后打开application.yml修改redis板块下的host和password即可`,(注切记`:`后面需要带一个空格) `如:redis:?`和`redis: ?` 需要带空格 ## 内部测试接口流程 一:程序运行主类HyhApplication ``` hyh auto test │ ├─annotation 自定义注解包 │ │ │ ├─TestApiDesc 自定义注解 │ ├─aspectj AOP包 │ │ │ ├─TestApiDescAspect (用于拦截方法执行前后) │ ├─bean 远端接口返回数据解析包 │ │ │ ├─RespToLogin (登录接口返回的参数结构) │ ├─config 配置包 │ │ │ ├─ExtentTestNGIReporterListener (testNg自带美化界面,现版本已不再使用) │ ├─如需使用美化界面请参考:如何配置ExtentTestNGIReporterListener美化界面 │ │ │ ├─FastJson2JsonRedisSerializer (JSON反序列化) │ │ │ ├─MvcConfig (跨域配置) │ │ │ ├─RedisConfig (redis配置) │ │ │ ├─SaTokenConfigure (saToken拦截器) │ │ │ ├─TestManager (储存用例成功以及失败的集合) │ ├─config 常量包 │ │ │ ├─Constants (普通常量状态码) │ │ │ ├─HttpStatus (http请求常量状态码) │ ├─entity 实体包 │ │ │ ├─Bs (自定义查询类(与测试报告无关)) │ │ │ ├─LoginDto (请求远端登录接口的参数类) │ ├─exception 异常包 │ │ │ ├─custom (自定义异常包) │ │ │ │ ├─BaseException (通用异常抛出) │ │ │ │ ├─CustomException (自定义异常抛出) │ │ │ ├─GlobalExceptionHandler (全局异常捕获,自定义异常被抛出后,可以在这里做处理) │ ├─listener 监听包 │ │ │ ├─MySaTokenListener (saToken监听,可以在登录后做逻辑处理) │ │ │ ├─TestngListener (testNg监听,可以在流程测试后做逻辑处理) │ ├─redis 缓存包 │ │ │ ├─RedisCache (redis缓存应用) │ ├─request 请求包(相当于controller)(这个包主要用于内部测试) │ │ │ ├─LoginRequest (普通的登录接口) │ │ │ ├─QueryRequest (普通的查询接口) │ ├─service 逻辑处理包 │ │ │ ├─Impl (自定义异常包) │ │ │ │ ├─LoginServiceImpl (ILoginService中的login方法的具体实现) │ │ │ │ ├─StpInterfaceImpl (saToken权限模块) │ │ │ ├─ILoginService (需要实现的方法) │ ├─testing 自动化测试包 │ │ │ ├─LoginTesting (测试登录) │ ├─testReport 自定义报告参数输出包 │ │ │ ├─ReportApiRequest (接口请求详情) │ │ │ ├─ReportApiResponse (接口返回详情) │ │ │ ├─ReportInfo (用例最终结果集) │ ├─util 工具类包 │ │ │ ├─text (字符串包) │ │ │ │ ├─CharsetKit (字符集工具类) │ │ │ │ ├─Convert (类型转换器) │ │ │ │ ├─StrFormatter (字符串格式化) │ │ │ ├─HttpUtil (封装好的post、get、delete、put请求) │ │ │ ├─IdUtils (随机ID生成器) │ │ │ ├─MailUtils (发送邮件) │ │ │ ├─MessageUtils (国际化翻译包) │ │ │ ├─R (通用返回类型) │ │ │ ├─RandInfo (随机姓氏生成) │ │ │ ├─SpringUtils (spring工具类可以获取上下文) │ │ │ ├─StringUtils (字符串工具类) │ │ │ ├─UtilException (异常工具类) │ │ │ ├─UUID (UUID生成器) │ ├─resources 静态资源存放 │ ├─properties (静态资源) │ │ │ │ ├─mail.properties (邮箱配置) │ ├─static (静态资源) │ │ │ ├─templates (HTML文件存放) │ │ │ │ ├─index.html (自定义测试报告模板) │ │ │ ├─application.yml (框架基础配置) │ │ │ ├─test.xml (可运行的XML测试,当HyhApplication运行后,test.xml即可运行看到输出报告) ``` ## 接口请求详情图片 ![image](images/03.png) ## 接口返回详情图片 ![image](images/04.png) ## 用例最终结果集图片 ![image](images/05.png) ## 如何配置ExtentTestNGIReporterListener美化界面 `只需要在test.xml配置listener即可,当运行结束后,会在项目中生成test-output目录,打开即可看到美化界面` `注(可能会出现css丢失的情况...)` ![image](images/06.png) 二:log日志记录 1.`Reporter.log()`:日志输出会记录到测试报告中,按从上到下的顺序依次打印
三:断言 1.`Assert.assertEquals(200,200)`:第一个参数为你的目标参数、第二个参数是返回参数
四:自定输出测试报告 ## 满足了框架基础配置的调试后,2步生成用例报告 1.`第一步右键找到Run HyhApplication类`
2.`打开系统D盘查收测试报告`
4.![image](images/01.jpg)
五:自定义可视化测试配置 1.`@TestApiDesc`自定义注解、可用于描述的参数内容有:
`apiName:接口名称`
` apiUrl:接口路径`
` apiMethod:接口请求`
` apiRemark:接口描述...等等`
`如需自定义参数,在TestApiDesc类中添加你需要的描述,然后在对应的实体类中添加值并在LoginTesting类的#方法切入中#set值,再到index页面中,自定义css后显示该值即可` 2.`@Test`测试注解,当整合test.xml运行时,会把带有@Test注解的方法加载进来(注:需要配合test.xml中的加载方法体↓(看下面))
**如下:**
- 在test.xml中``指的是需要加载的类路径 而methods 下的``指的是该类下需要运行测试用例的方法,test.xml中的class name 指定的方法名必须对应该类中的方法名,如果方法名不一致,则该用例不会执行
- ![image](images/02.jpg)

3.当以上的条件都满足时后,恭喜你,你已经掌握了运行用例的基本功
4.`testNg中的常用注解:可以百度搜,以下提供框架中使用的2种`
`@AfterMethod:每运行一个@Test测试用例后,都会执行一遍此方法`
`@AfterTest:当所有的@Test用例执行完毕后,最后便会执行此方法`
`更多testNg接口方法请参考:`https://blog.csdn.net/chengloveye/article/details/84900037`