配置测试Guns
 Guns简介  
 
 Guns是一个近几年来基于SpringBoot的开源便利且较新的JavaEE项目开发框架,它整合了springmvc + shiro + mybatis-plus + beetl + flowable多项开源技术,致力于让Java后台开发更简洁快速
 
一,Guns的环境
Guns 源码
 
Maven
 
Eclipse-Photon
 
JDK8
 
MySQL
 
安装环境
 注:Eclipse和JDK的安装和安装包就用自己现有的就可以,星云测试将提供MySQL和Nodejs的安装包,但必须前提是用户自己的本机上不存在安装的MySQL和Nodejs
脚本安装mysql和nodejs(一键安装)
 
1、解压星云提供TT_Soft安装包(例如D盘根目录,mysql和node的安装路径)
 
2、打开TT_Soft文件夹

 
3、以管理员身份运行TeststarsSoftInstall.exe

 
4、等待自动安装完成,窗口提示mysql初始化完成,关闭窗口

 
5、注销或重启电脑
 
6、使用net start mysql 命令启动MySQL服务
 
 
7、使用node –v查看node版本

 
二,下载guns代码
 
下载地址:https://gitee.com/naan1993/guns/
 
将下载下来的代码进行解压
 
三,配置Guns
 
一, Eclipse导入Guns项目
  
 点击“Import...”后会出现如下图的导入对话框,请选择Maven选项中的“Existing Maven Projects”。
 
 之后,点击“Next”按钮后,按如下图的①、②和③的操作选中之前解压的Guns-master目录
 导入成功后如下图所示,可看见guns-admin、guns-core、guns-generator、guns-parent和guns-rest五个项目。成功将guns项目导入eclipse
 
guns-admin是Guns管理系统
guns-generator是maven代码的生成
guns-core是其他模块提炼出来的公共的代码
guns-parent是maven的的父模块,父模块的作用就是管理其它的子模块,可以把我们依赖都提到parent,并且对我们依赖的版本做一个统一的维护。
gun-rest本意是些一个app 服务端,提供rest API服务,权限和md5加密
 
二,配置Guns项目的数据库
 
 在导入成功的“guns-admin”项目中,我们能够找到“sql”目录下的guns.sql文件,如下图所示,将打开后的guns.sql中所有的内容复制一下。

 新建数据库名为guns,点击guns数据库中的“查询”后,将上面复制的sql直接运行,出现下面这些表即为正确
 
三,修改Guns项目的配置文件并运行
 
 在Eclipse中,找到guns-admin项目中的“application.yml”文件,它在src/main/resource路径下,并将该文件中所有的“username和password”部分的password默认的root值改为读者安装MySQL时所设置的密码,该步骤具体如下图所示:

 修改完此配置文件后,我们就可以开始运行guns项目了,请找到guns-admin项目中的src/main/java路径下的,com.style.guns目录中的GunsApplication.java文件,它是guns项目的主程序文件,点击运行
成功运行后,打开浏览器,在浏览器的地址栏中输入:http://localhost:8080
 
点击登录后,可进入如下图界面:
 
Guns已成功部署并运行成功。
 
四,测试项目
 
1, 下载工具及工具配置
1, 从官网上下载星云测试工具:http://www.teststars.cc/
 
下载以后进行配置:
 
2,星云测试服务端的配置
 
TTLangage.config配置项说明:
 
 1、 运行下的星云测试server目录中ThreadingTestServer.exe,在右下的图表中点注册信息,查看其时间,星云测试有两个月的体验,若是超过两个月,发生KEY过期,请联系星云测试的工作人员,并提交服务端中的序列码

 

 2、联系星云工作人员获取当前服务器的key.key文件,替换到星云的server目录下;
 3、启动server目录下的ThreadingTestServer.exe后会自动打开同级目录下的ThreadingTestServerFront.exe,看到自动弹出下面窗口后,表示连接正常。

 
3,星云测试客户端的配置
 
  注:星云测试在线客户端的连接需要访问端口17262/17263.登陆之前需要保证网络连接不存在限制。
 打开客户端之前需要修改TTClient文件夹下的Server.cfg文件,配置localIP项为可以与服务端正常数据通信的本机IP地址。配置这个localIP的原因是,在客户端需要接收来自服务端传来的动态数据,配置本地的IP地址服务端才能把数据传到客户端中来。
配置IP地址完成后双击运行TTClient/TT.exe文件进入星云测试客户端。选择文件->登录,输入星云测试服务端的IP地址以及自己的用户名和密码即可登录。如下图所示。
 
 
4,星云测试云报表平台服务启动
 
 1、 运行星云测试TTWeb目录下的bin\redis-2.4.5-win32-win64\32bit中的redis-server.exe
 
 
 2、运行星云测试TTWeb目录下的startTTwebserver.bat
 
 
 
 访问网页报表网页IP地址:3000
2,创建工程和版本并编译
 1, 登录客户端
 
 2, 选中待插装的空版本,版本处于解锁状态(解锁状态:右键-解锁状态)
 
 3, javaForWindows目录下的Server.cfg配置文件,[SERVER] ip填写实际ip地址,修改[PROPERTY]字段,与客户端目录下的Server.cfg同步
 
 
 4、修改javaForWindows目录下的ComplierPath.xml配置文件
 
 同一个版本下可添加多个子模块即proname,proname不能重复,一个子模块下可以配置多个工程路径
ProName:子模块名称
Project_path:测试程序源码文件路径
Class_path:测试程序class文件路径
因为项目是四个子项目,所以,必须得有四个模块,如下图:
 
 
 5、修改javaForWindows目录下tt_windows文件夹下Server.ini配置文件
Ip设置为客户端的ip地址。
 
 
 6、在命令行运行autoCompiler.jar进行编译
jre\bin\java.exe -jar autoCompile.jar -e D:\J2EE_Enterprise_key_64bit0803\CompileToolsPkg\javaForWindows
注:-e后面的参数为ComplierPath.xml文件的目录
 
 
 7、在客户端查看数据,记得必须点击重新加载文件
 
 
 由于测试的时候需要运行我们插装后的代码(编译完成后会在java目录同层生成src-instru目录,src-instru目录即为编译插装后的源码);
具体操作:先将源码目录下未插装的java目录重命名为pre_java,再将编译插装生成的src-instru目录命名为java。
 
 并且插桩代码的运行需要我们的jar包,因此需要修改客户的pom.xml文件来引入我们的jar服务,加入到两个<dependencies>之间,加入的代码如下:
systemPath需要按JavaParser-j2ee.jar
和jeromq-0.3.0-SNAPSHOT.jar的绝对路径填写  

 <dependency>
<groupId>com.zoa</groupId>
<artifactId>JavaParser-ZMQ</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>/D:/J2EE/client/MQ/JavaParser-J2EE.jar</systemPath>
</dependency>
<dependency>
<groupId>com.zoa</groupId>
<artifactId>jeromq</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>/D:/J2EE/client/MQ/jeromq-0.3.0-SNAPSHOT.jar</systemPath>
</dependency>

 
 在pom文件修改完成后即可打包发布
 编译以后打包成jar包(具体的打包方法参考6,运行项目)
 打包完成,为使函数覆盖率可视视图代码部分显示正常,需要手动修改源码路径:右键版本,点击修改源码路径,选择到pre_java目录即可。
 
 
 3,测试前准备 
 
 1、添加数据传输配置文件

 数据传输配置文件是保证运行的数据可以回传到星云服务器的。配置方法是在具体的客户测试环境下的usr/local/bin文件夹下新建配置文件config.cfg 文件内容如下:
state=1
IP=(IP值写星云测试服务端IP,注意要大写)
(如果发布环境是windows环境,需要在C盘根目录下配置上述文件)

 2,agent启动项目
cmd输入命令:
java -javaagent:E:\zoa-agent-1.6.2\zoa-agent-1.6.2.jar -jar
G: \naan1993-guns-master\guns-admin\target\ guns-admin-1.0.0.jar

 
E:\zoa-agent-1.6.2\zoa-agent-1.6.2.jar =agent路径
G: \naan1993-guns-master\guns-admin\target\ guns-admin-1.0.0.jar =项目路径
出现这样的界面表示运行成功:
 
 
 3,设置cookie

 
 1,项目URL后面加teststars.jsp,访问teststars.jsp页面进行cookie设置
 
 
 2,点击setcookie进行设置,设置成功页面如下:
 
 
注:为了区分测试,我们在设置的用户姓名与星云客户端当前登录用户一致,
 
 4,星云测试云报表平台服务启动
 
 1、 运行星云测试TTWeb目录下的bin\redis-2.4.5-win32-win64\32bit中的redis-server.exe
 
 
 2、运行星云测试TTWeb目录下的startTTwebserver.bat

 
 
 访问网页报表网页IP地址:3000
 
4,编写测试用例
  
点击添加:
 
 
5,项目测试
 
访问地址:http://localhost:8080/login
 
 
 
 页面登陆进去以后,假如测试内容管理的文章管理的测试用例,则选择内容管理的文章管理的用例,点击开始,在页面上点击内容管理的文章管理,就会有相应的测试数据传输过来(具体的展示见后面测试结果的第一个标题:示波器的展示),数据接收完以后点击停止,本条用例测试完毕
 
,测试结果

 1,示波器波形展示
 先选中测试用例,再点击开始后就可以进行相应的测试工作了,测试的时候示波器可以收到动态数据并以波形图的方式展示出来。

 
 注:采集的动态数据保存在服务端目录下的VersionData文件夹下,对应版本的动态数据注:采集的动态数据保存在服务端目录下的VersionData文件夹下,对应版本的动态数据保存在相应的版本号目录下(版本号可在数据库management表的version表中查看)
 
 2,缺陷管理
 为了让测式人员更好的对缺陷进行管理,采用测试用例、代码、BUG相关联方式,精准测试云平台使用了历史BUG追查功能,这使得在版本迭代过程中,同一个测试用例所有的BUG情况一目了然,避免了因人员变动或版本变动导致的相同的BUG的排查时间,以及重复提交未被解决的BUG。
 
 
                  图表 bug信息一目了然
 3,覆盖率
 覆盖率可视化针对函数sc0、True、false 、both、Branch、C/DC 、MC/DC 7种覆盖率给出可视化展示下面针对每一种覆盖率展示界面给出说明:(以sc0为例)
sc0为语句块覆盖,其颜色区分对象为基本语句块(包括隐含不可见语句块)其中绿色标示被覆盖的语句块。蓝色是未覆盖到的语句块。
计算方法为:覆盖到块/应统计块
 
 
用红色的标出来的表示sc0覆盖率,函数列表右方为覆盖率的展示:
 
 
4,双向追溯
 双向追溯是指通过运行测试用例,实现测试用例与被测源码间相互追溯。根据测试用、
查看相关被测源码为正向追溯,根据被测源码查看相关测试用例为逆向追溯。在测试用例列表中选择测试用例,可以追溯到该测试用例的内容描述信息,在模块调用图中显示被测试到的函数;也可以在模块调用图中,点击相关的函数,也可以追溯到相关的测试用例。该追溯技术方便了用户查看和设计测试用例。
 双向追溯功能可以运行的前提是,测试用例已经被运行过,并且示波器收到了波形采集到了
动态数据。
 1,正向追溯
 正向追溯是指:将测试用例和海量的代码执行信息自动关联,可精确到函数级别及代码块级别;通过正向追溯可直接在代码级定位测试现场故障和缺陷逻辑,并提供最后运行的时序数据;通过正向追溯自动记录产生功能对应的详细设计实现,辅助软件解耦和架构分析。
正向追溯的优势是:迅速定位缺陷对应的代码执行逻辑,帮助开发快速修复缺陷,可追踪难复现缺陷;精确、详尽的记录测试用例运行的情况,为精准软件测试提供大量原生分析性数据;可以进行事后的缺陷分析、追踪,辅助开发进行功能实现确认。
  
 如图:点击测试用例追溯到这个成而是用例运行过得函数,选中一个函数,追溯到这个函数运行过得控制流程图的逻辑分支
以下是正向追溯到代码和函数调用图:
 
 
2,反向追溯
 反向追溯是指:分析代码关联的功能,为研发分析系统和进行一致性修改以及回归测试分析提供精确数据。
 反向追溯过程:点击需要查看的函数或函数中的某行代码,自动列出可以测试到该函数或者程序分支的测试用例

 选择函数追溯到运行过该函数的测试用例,查看该函数的控制流程图和代码

 点击代码,追溯到运行过该代码的测试用例
 
5,简易流程图的展示
 前置条件:版本有数据,关联源码可在代码视图有显示源码,并且在简易控制流
程图的分支块有具体语句显示,有覆盖率数据,可在简易控制流程图显示当前覆盖到的块信息
简易控制流程图功能,以语句块的形式清晰的展示函数内部的控制逻辑,界面上可以直观的看出控制流各节点的测试覆盖情况,在展示中,简易控制流程图还可以通过颜色对每个程序块进行覆盖率标识,在缩略图中整个模块的覆盖率非常直观。(背景色为绿色表示有测试用例覆盖到该块:以SC0覆盖为参考标准)
 

 
6,报表的展示
选择客户端所编译的项目和版本:
显示所选取编译项目的一些基本信息,包括:
项目指标信息、项目信息、版本信息、测试汇总信息、测试过程监控趋势图、测试设备组成和分布图、版本覆盖率汇总图、复杂度统计图
项目汇总:

 
包含项目信息:项目的详情信息
版本信息:版本的详情信息
 测试汇总信息:测试用例通过率:无BUG的测试用例
  BUG累计:测试用例运行完毕后提交的BUG数
  当前版本覆盖率(SC0):(执行过可见段数/可见段数)*100%的比例
  覆盖率增长:相比前一天的SC0增长差值
  高复杂度预警函数个数:高复杂度的函数个数

 
测试用例列表:
 
显示制作的测试用例的详细信息,包括测试用例的名称、创建时间、执行时间、关联函数、覆盖率占比、运行状态、测试人员等
 
覆盖率按日增长曲线图:
 
            覆盖率按日增长曲线图,让管理者更好的把握测试过程

 
测试漏洞列表:
 
 
 在一个程序中,往往有成百上千的函数,这些函数有的是关联整个程序核心、有的则是开发人员弃而不用,但一直保留迟迟不肯删除的,针对这些大量的函数,“精准测试”采用通过静态、动态指标的综合分析,在大量的程序函数中,通过计算直接筛选潜在的高危的测试漏洞,通过报表给予展示。  

    • 通过复杂度和覆盖率进行计算
    • 通过函数调用上下文和覆盖率进行计算

【星云测试】开发者测试(2)-采用精准测试工具对J2EE Guns开发框架进行测试的更多相关文章

  1. 【星云测试】开发者测试(4)-采用精准测试工具对dubbo微服务应用进行测试

    简介:本文主要目的是把现今主流的Dubbo框架项目和精准测试进行对接,通过精准测试的数据穿透.数据采集.测试用例与代码的双向追溯.数据分析等一系列精准测试的特有功能达到对项目质量的保证. 本次环境搭建 ...

  2. 【星云测试】开发者测试(3)-采用精准测试工具对springcloud微服务应用进行穿透测试

    1.微服务简介 微服务英文名称Microservice,Microservice架构模式就是将整个Web应用组织为一系列小的Web服务.这些小的Web服务可以独立地编译及部署,并通过各自暴露的API接 ...

  3. Mysql备份工具xtraback全量和增量测试

    Mysql备份工具xtraback全量和增量测试   xtrabackup 是 percona 的一个开源项目,可以热备份innodb ,XtraDB,和MyISAM(会锁表) 官方网址http:// ...

  4. Mysql多线程性能测试工具sysbench 安装、使用和测试

    From:http://www.cnblogs.com/zhoujinyi/archive/2013/04/19/3029134.html 摘要:      sysbench是一个开源的.模块化的.跨 ...

  5. 基于奇林软件kylinTOP工具的HTTP2协议的压力测试

    1.HTTP协议概述 说到http,那就应该先了解一下http协议的发展历史.关于http协议的历史,可以参考阮一峰老师的这篇博客文章HTTP 协议入门,里面介绍的比较详细了.简单来说http先后存在 ...

  6. flagr a/b 测试特性开关&&微服务动态配置工具

    flagr a/b 测试特性开关&&微服务动态配置工具 简单运行 docker docker run -it -p 18000:18000 checkr/flagr 运行界面 说明 参 ...

  7. Net Manager测试连接测试没有成功,用户权限问题,以管理员身份运行后测试成功

    Net Manager测试连接测试没有成功,截图如下:

  8. Kail Linux渗透测试教程之免杀Payload生成工具Veil

    Kail Linux渗透测试教程之免杀Payload生成工具Veil 免杀Payload生成工具——Veil Kail Linux渗透测试教程之免杀Payload生成工具Veil,Veil是一款利用M ...

  9. Kail Linux渗透测试教程之网络扫描和嗅探工具Nmap

    Kail Linux渗透测试教程之网络扫描和嗅探工具Nmap 网络扫描和嗅探工具——Nmap Nmap也就网络映射器(Network Mapper),是一个免费开放的网络扫描和嗅探工具.该工具可以扫描 ...

随机推荐

  1. HTML5 Canvas中绘制椭圆的几种方法

    1.canvas自带的绘制椭圆的方法 ellipse(x, y, radiusX, radiusY, rotation, startAngle, endAngle, anticlockwise)是后来 ...

  2. vmware 虚拟机导入OVF出现路径错误

    现状: 需要将原有数据中心的VM虚拟机导出本地OVF模板,然后迁移至新的机房虚拟化环境后从新导入. 问题: 导入OVF时候,先出现错误问题1,修复完成后,出现错误问题2 1. OVF迁移至本地以后,导 ...

  3. Reverse Integer 旋转数字

    Reverse digits of an integer. Example1: x = 123, return 321Example2: x = -123, return -321 本地注意正负号判断 ...

  4. Spring3实战第一章 Aop 切面 XML配置

    刚看spring3实战书籍第一章  切面以前没有关注过 现在看到了  随手试验一下 AOP AOP(Aspect Oriented Programming),即面向切面编程,可以说是OOP(Objec ...

  5. 微信小程序开发常见之坑

    https://www.cnblogs.com/shunxing/articles/6971648.html input里的value会在浮层上面的,要解决这一问题还是很简单的,在小程序中input有 ...

  6. Java软件编码规范要求

    1.一个类对应一个文件,文件名与类名保持一致 虽然一个“.java”源文件可以有多个类(不是内部类),但是不提倡那么写.

  7. 沉淀再出发:如何在eclipse中查看java的核心代码

    沉淀再出发:如何在eclipse中查看java的核心代码 一.前言   很多时候我们在eclipse中按F3键打算查看某一个系统类的定义的时候,总是弹出找不到类这样的界面,这里我们把核心对应的代码加进 ...

  8. OpenCV&&python_图像平滑(Smoothing Images)

    Goals 学习用不同低通滤波方法模糊图像(Blur imagess with various low pass filter) 用用定制的滤波器处理图像(Apply custom-made filt ...

  9. PHP_GET后门,躲避任何安全软件

    经常拿到一些比较好的php站想要留住.插入菜刀一句话,很容易被管理发现,不管是eval还是assert,就是管理发现不了,有时连接也会被各种的安全软件拦截.现在教大家一个简单的技巧.本人一直在用,留的 ...

  10. 020.1.1 collections集合工具类

    内容:常见需求以及使用—逆转比较器顺序,最值和同步方法 collections类的方法都是静态方法 强行逆转比较器的顺序例子: //##主函数.java List<String> list ...