Sonar

浅谈自动化测试实践经验和教训

為{幸葍}努か 提交于 2020-05-08 16:19:20
做自动化有好一段时间了,经历了自动化从无到有,然后到框架,到现在的平台,以及持续集成,回顾发现由于自己之前经验太浅,走过的弯路太多,现在也还在谨慎的前进着,之前发现早前很多懵懂的经验,现在稍稍清晰,于是想着结合自己的历程精简出一些经验吧。现在经验还是尚浅,如果有更深认识的朋友,互相讨论,谢谢。 一、所谓自动化是为了软件发布服务的,并不只是为了测试服务   以前一直怀疑自动化测试的用处,我们之前花费大力气开发了大量的基于关键字方式的脚本,用来提高测试的覆盖率,每次测试耗费大量时间,但是发现的问题少之又少,虽然说,自动化测试不是用来发现问题的,是用来验证软件没有问题,但是有一个矛盾在于我如果不做自动化测试,问题还是那么少,那么做自动化测试我们难道只是为了追求一个心理感受吗?这个概率问题怎么平衡 后来,这个经验是在与开发一起合作冒烟测试建设,到现在的持续集成建设,开始明白,自动化测试的好处是为了增强开发的灵活性和保证软件开发流程的有序性 1)快速检测新版本的不稳定变更,即冒烟测试,能够快速验证当前build版本是否可以继续下一步或者提测,此处冒烟测试可以是单元测试、集成测试和基本功能覆盖测试,常用的框架和工具:Junit、TestNG和接口测试框架(soapui、httpClient等)、界面测试框架用于基本的界面测试(QTP、RFT、selenium)。 2)尽可能的暴露回归程序的错误

docker + mysql安装sonarqube

允我心安 提交于 2020-05-08 10:05:41
docker sonarqube地址:https://hub.docker.com/_/sonarqube docker mysql地址:https://hub.docker.com/_/mysql 以下在linux环境执行: 一、拉取sonarqube镜像 docker pull sonarqube 二、docker安装mysql 1、拉取mysql 5.7版本镜像 docker pull mysql:5.7 2、启动mysql docker run -p 3307:3306 --name mysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 3、进入启动的mysql container docker exec -it mysql(容器名) bash 4、创建sonar数据库和sonar用户 #登录mysql mysql -u root -p #创建sonar数据库 create database sonar #添加远程登录用户 CREATE USER 'sonar'@'%' IDENTIFIED WITH mysql_native_password BY 'sonar';

NetCore搭建Jenkins遇到的问题点

扶醉桌前 提交于 2020-05-08 04:02:57
需求: NetCore项目 通过jenkins实现自动构建,部署,静态扫描(Sonar) Jenkins、Sonar的安装就不赘述了,网上一搜一大堆; 闲话少说直接讲问题点 系统配置: CentOS 7.2 ,Docker 问题1: Jenkins设置Admin User账号密码后 过了一会怎么都无法登录,提示密码错误 解决方案: 原文链接:https://blog.csdn.net/zsdoudou/article/details/98486108   1. 注释config.xml文件 2、启用安全设置   3、重置admin密码 问题2: NetCore项目配置的构建指令失败 解决方案: 根据自己的NetCore版本和linux服务器版本 安装netcore sdk      安装地址:https://dotnet.microsoft.com/download/dotnet-core 问题3: 获取不到公司/第三方的NuGet包 原文链接:https://www.cnblogs.com/YahuiWang/p/jenkins-docker-dotnet-core-publish.html 解决方案: 配置jenkins_home/.nuget/NuGet/NuGet.Config <?xml version="1.0" encoding="utf-8"?>

用vscode进行jest单元测试并调试代码

无人久伴 提交于 2020-05-02 11:38:14
首先需要安装相应的包:npm i -D jest ts-jest supertest jest-express jest-sonar-reporter sonarqube-scanner 1、单元测试:npm run test 2、代码覆盖率:npm run test:cov 3、使用SonarQube平台分析:npm run sonar,完成后就可以使用SonarQube web查看相关数据 4、如何调试单元测试的代码,有二种方法:1、在vscode终端运行npm run test:debug,2、在vscode的launch.json中添加相应的代码,然后就右直接选择运行中的Debug Jest Tests来启动 在pageage.json增加如下配置 1 "scripts" : { 2 "lint": "eslint 'src/**/*.{ts,js}'" , 3 "lint:fix": "eslint 'src/**/*.{ts,js}' --fix" , 4 "lint:ts": "tslint -p tsconfig.json -c tslint.json" , 5 "test": "jest --runInBand --forceExit --colors" , 6 "test:watch": "jest --watch" , 7 "test:cov": "jest

工作中使用的Dockerfile

心已入冬 提交于 2020-04-30 10:48:39
工作中定制的Dockerfile java:8.0 jenkins-slave:8.0 nodejs:v10.15.0 maven:8.0 httpd:7.5 newman:5.0.0 sonar:6.7.4 公司使用的内网,所以有的Dockerfile中使用的安装包,可以在外网下好传到内网,安装包都放在对应的Dockerfile同级目录下。 java:8.0 FROM redhat:7.5 MAINTAINER XXX ARG JAVA_VERSION=8u241 #jdk的rpm包与Dockerfile放在同级目录 COPY jdk-${JAVA_VERSION}-linux-x64.rpm /opt/ RUN rpm -ivh /opt/jdk-${JAVA_VERSION}-linux-x64.rpm \ && rm /opt/jdk-${JAVA_VERSION}-linux-x64.rpm 切换到Dockerfile所在目录执行以下命令制作镜像: # docker build -f Dockerfile -t rhel_7.5/java:8.0 . jenkins-slave:8.0 FROM rhel_7.5/java:8.0 MAINTAINER XXX ARG GIT_VERSION=2.11.0 ARG user=jenkins ARG group

sonar Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.4.0.905:sonar

前提是你 提交于 2020-04-28 11:03:07
背景: 今天在项目根目录执行maven sonar:sonar ,报错信息如下,然后就各种的搜,折腾了多半天天也没找出解决办法,最后打算放弃时,看到一遍文章说是mysql max_allowed_packet 的问题 Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.4.0.905:sonar (default-cli) on project air_order_mis_new_git: Failed to upload report - 500: An error has occurred. Please contact your administrator -> [Help 1] 2、解决方法: mysql客户端命令行执行 set global max_allowed_packet = 100*1024*1024; show VARIABLES like '%max_allowed_packet%’; 查看 max_allowed_packet收更新成功 最后问题解决 3、max_allowed_packet是干嘛的呢? 原来是控制server接受数据包的大小,有时大量的插入数据会因max_allowed_packet参数限制,而导致写入失败 当时就往maven 配置

GitLab+Jenkins+Maven+SonarQube 实战配置三

最后都变了- 提交于 2020-04-21 02:35:42
GitLab+Jenkins+Maven+SonarQube 实战配置三 上两篇主要讲了 Jenkins + SonarQube 系统完整搭建项目的过程,这一篇主要讲 Android 项目的编译,然后进行代码质量分析。 下面是一个 Android 项目的代码库 Jenkins 下载项目代码,下载研发分支 dev_2.0.0。 构建环境这里,要选择 Node & npm 参数选项。 构建这里,选择增加构建步骤,添加一个 Execute shell 构建方式。 接着下一步构建这里,再增加一个构建步骤,添加一个 Execute SonarQube Scanner 构建方式。 构建完成,将执行 SonarQube 扫描分析代码质量,下面是代码片段。 sonar.projectKey=mobile_view_frontend sonar.projectName=mobile_view_frontend sonar.projectVersion=1.0 sonar.sources=./ sonar.language=java sonar.sourceEncoding=UTF-8 sonar.java.binaries=./ sonar.login=admin sonar.password=scmsonar sonar.branch.name=dev_2.0.0 从上到下配置好构建过程

配置sonarqube与gitlab sso认证集成

我怕爱的太早我们不能终老 提交于 2020-04-11 19:52:22
1.安装插件 sonar插件地址: https://github.com/gabrie-allaigre/sonar-auth-gitlab-plugin 安装插件: 下载插件然后通过maven打包然后放入到sonar的插件目录中(/home/sonar/sonarqube/extensions/plugins),重启sonarqube。 2.gitlab配置 创建应用,填写sonar地址(必须是https) 保存生成认证key,用于后面sonar配置 3.sonarqube配置 配置》gitlab 启动gitlab认证,填写gitlab地址,应用ID,secret信息 登录验证,点击通过gitlab登录。 FAQ Q1: gitlab报错redirect_url错误 描述: 发现是直接重定向到一个localhost:9000的地址,感觉的是配置问题,页面上没找到配置。 解决: 更改sonar服务端配置文件,添加参数定义 sonar.core.serverBaseURL= https://sonar.demo.com ,重新启动sonarqube。 来源: oschina 链接: https://my.oschina.net/u/4362304/blog/3229562

Gradle这篇文章就够用了11-Gradle与CI/CD插件集成

倾然丶 夕夏残阳落幕 提交于 2020-04-06 17:59:56
Gradle与CI/CD插件集成 结合JUnit进行单体测试 在build.gradle中添加testImplementation,例如 buildscript { ext { springBootVersion = '2.1.1.RELEASE' } repositories { mavenCentral() } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") } } apply plugin: 'java' apply plugin: 'org.springframework.boot' apply plugin: 'io.spring.dependency-management' group = 'com.orrincn' version = '0.0.1-SNAPSHOT' sourceCompatibility = 1.8 repositories { mavenCentral() } dependencies { implementation('org.springframework.boot:spring-boot-starter-web') testImplementation('org

解决sonar单元测试覆盖率为0的问题

社会主义新天地 提交于 2020-03-26 11:07:29
3 月,跳不动了?>>> pom.xml中添加jacoco插件 <plugin> <groupId> org.jacoco </groupId> <artifactId> jacoco-maven-plugin </artifactId> <version> 0.7.9 </version> <configuration> <classDumpDir> target/classes </classDumpDir> <includes> <include> com///** </include> </includes> </configuration> <executions> <execution> <id> default-prepare-agent </id> <goals> <goal> prepare-agent </goal> </goals> </execution> <execution> <id> default-prepare-agent-integration </id> <goals> <goal> prepare-agent-integration </goal> </goals> </execution> <execution> <id> default-report </id> <goals> <goal> report </goal> </goals>