惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Cyberwarzone
Cyberwarzone
F
Full Disclosure
V
Visual Studio Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
有赞技术团队
有赞技术团队
J
Java Code Geeks
博客园 - 【当耐特】
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 叶小钗
L
LINUX DO - 最新话题
T
Threatpost
S
SegmentFault 最新的问题
Vercel News
Vercel News
云风的 BLOG
云风的 BLOG
C
Cyber Attacks, Cyber Crime and Cyber Security
Google DeepMind News
Google DeepMind News
Know Your Adversary
Know Your Adversary
S
Schneier on Security
V
Vulnerabilities – Threatpost
D
DataBreaches.Net
G
GRAHAM CLULEY
Latest news
Latest news
P
Privacy International News Feed
D
Darknet – Hacking Tools, Hacker News & Cyber Security
C
CXSECURITY Database RSS Feed - CXSecurity.com
Scott Helme
Scott Helme
L
Lohrmann on Cybersecurity
T
The Exploit Database - CXSecurity.com
Security Latest
Security Latest
G
Google Developers Blog
L
LangChain Blog
MyScale Blog
MyScale Blog
Project Zero
Project Zero
N
News and Events Feed by Topic
Hacker News - Newest:
Hacker News - Newest: "LLM"
大猫的无限游戏
大猫的无限游戏
P
Proofpoint News Feed
Blog — PlanetScale
Blog — PlanetScale
阮一峰的网络日志
阮一峰的网络日志
N
News | PayPal Newsroom
www.infosecurity-magazine.com
www.infosecurity-magazine.com
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
SecWiki News
SecWiki News
T
Tor Project blog
C
Check Point Blog
Google Online Security Blog
Google Online Security Blog
GbyAI
GbyAI
The Last Watchdog
The Last Watchdog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
WordPress大学
WordPress大学

Sehnsucht

记一次博客换图床的过程 观《花束般的恋爱》 读《活过》 东京 旅行篇 亲人逝去 我为什么想养鱼 防止AI爬取你的博客 「monthly 」博客重构 游戏全成就 好看的小说 人生的每一步都不会是浪费-2024年终 「weekly」星期五综合征 「weekly」听播客 杂谈 读《美丽新世界》 「weekly」社交媒体 恶性事件 新世界 「weekly」认知觉醒 美丽新世界 follow 「weekly」独立博客9问题 双十一买书 读《惊呆了!原来这就是社会学》 一次聊天与自我建设 2024-09月记 补番《relife》 树状数组简单理解 lvm简单使用 博客自动发布方案 某公众号废案 fail2ban基本使用 Podman 环境使用 Nginx Proxy Manager 最佳实践 2024-07同学聚会 vps使用podman部署freshrss Gitlab CICD 实践,思考与记录 装备升级:新的PC gitlab局域网搭建流程 FastMail迁移至GMail+Cloudflare Email Routing 读《黑客与画家》 leetcode 第 391 场周赛 Astro添加过渡后DarkModeToggle按钮失效 nuxt3使用echarts5渲染中国地图 人生刻度 又到凤凰花朵开放的时候 2023-05-10 实习结束 2023-04-26 广州博物馆游记 YOASOBI「たぶん」官方音乐视频 风灵玉秀-发如雪 带我的老哥离职了 从p10k转向Starship lunarvim国内安装踩坑记录 什么是对称加密非对称加密、密钥交换、数字签名、证书 强调体验的一种思考时间的方式 ArchLinux使用vscode编写latex报错The font "FontAwesome" cannot be found ArchLinux安装(移动硬盘)流程 yay一个或多个文件没有通过有效性检查! 2022年终 hugo建站伊始 clash设置relay前置代理(校园网破解改进记录) 群青 · YOASOBI · Ayase 华为 matepad pro 11使用体验 Nginx使用acme.sh免费安装ssl证书 永远属于你的安娜 在线 童年趣事 童心,是比野心更难得的梦想 2021年终总结 Linux不同用户安装不同版本jdk Wifi4更换Wifi6路由器的使用体验 Flask 上传图片并灰度显示 玩客云刷机debain个人记录 jython 简单入门 Jenkins 个人搭建流程记录 集成邮件系统(qq邮箱),gitlab服务器,freestyle风格 在Web项目中配置Log4j --指南-- Codeforces Round 753 (Div. 3) ABCDE 浅谈fork函数 JavaWeb servlet 使用Cookie记录用户访问次数 Codeforces Round Educational Codeforces Round 114 (Rated for Div. 2) ABC 2021牛客多校7 I xay loves or 2021牛客多校9 H Happy Number 2021牛客多校8 D OR 2021牛客多校5 B Boxes 2021牛客多校5 H Holding Two 2021牛客多校2 D Er Ba Game 2021牛客多校1 F Find 3-friendly Integers 2021牛客多校1 B Ball Dropping 记人生第一次投简历和笔试 原型模式 2021-2-20 雨时随记 关于一维差分数组的例子 halo个人建站 关于手机ping电脑和电脑ping手机 泛型类简单理解 CodeForces - 849C From Y to Y 2020牛客国庆集训派对day3 Leftbest 约瑟夫环问题---2020牛客国庆集训派对day2 AKU NEGARAKU mysql 5.7 忘记密码如何更改 CF 1099B Squares and Segments CF 998A Balloons CF 998B Cutting 链表应用之多项式相加 CF 1150A Stock Arbitraging CF 1199A City Day CF 1199B Water Lily CF 982A Row CF 934A A Compatible Pair CF 629B Far Relative’s Problem 651A Joysticks 651B Beautiful Paintings
基于jeeSite的软件测试课程作业 流程记录
2021-12-28 · via Sehnsucht

对jeesite进行单元测试,功能性测试,性能测试

jeeSite软件启动步骤

普通做法

进入root,命令行输入mvn install

配置数据库

创建数据库jeeSite

create database jeesite default charset 'utf8' collate 'utf8_general_ci';

在web下找到config目录并修改springboot配置文件的数据库密码

进入web/bin中,在命令行敲入.\init-data.bat

/web下输入mvn install

然后在target目录下输入java -jar war.war

访问网页

http://localhost:8980/js

账号system密码admin

IDEA做法

双击shift,点击add maven ...这个选项,然后把root下面的pom.xml导入即可,如果springboot报错那就alt + enter添加依赖,报错解决

selenium简单脚本编写

添加依赖

<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>3.141.59</version>
</dependency>

下面是打开浏览器并访问百度(示例)

package com.jeesite.selenium;

import org.junit.Test;
import org.openqa.selenium.chrome.ChromeDriver;

/**
 * @Description:
 * @Author: Cai
 * @CreateTime: 2021/12/24
 */

public class ChromeTest {
    @Test
    public void openChrome() {
        //打开浏览器
        System.setProperty("webdriver.chrome.driver", "src/main/resources/chromedriver.exe");
        ChromeDriver chromeDriver = new ChromeDriver();
        //访问百度
        chromeDriver.get("https://www.baidu.com");
    }
}

使用selenium需要下载chromedriver

步骤

  • 创建一个新的test,输入所要测试的url,在右上方点击录制(它会自动打开浏览器到所需要的测试网页)
  • 点击浏览器,selenium IDE会自动记录你点击的地方(根据class,id,标签锁定)
  • 返回selenium IDE并结束录制
  • 点击执行箭头即可执行刚刚录制的

可以使用selenium IDE插件进行录制,然后导出成Junit即可,文件的后缀是.side

下面是导出的Junit示例,每个步骤相当于测试样例的步骤了

@Test
public void loginSuccess() {
    // Test name: 正确登录
    // Step # | name | target | value
    // 1 | open | http://localhost:8980/js/a/login |
    driver.get("http://localhost:8980/js/a/login");
    // 2 | setWindowSize | 1552x840 |
    driver.manage().window().setSize(new Dimension(1552, 840));
    // 3 | click | css=.login-box |
    driver.findElement(By.cssSelector(".login-box")).click();
    // 4 | click | id=username |
    driver.findElement(By.id("username")).click();
    // 5 | type | id=username | system
    driver.findElement(By.id("username")).sendKeys("system");
    // 6 | click | id=password |
    driver.findElement(By.id("password")).click();
    // 7 | type | id=password | admin
    driver.findElement(By.id("password")).sendKeys("admin");
    // 8 | click | id=btnSubmit |
    driver.findElement(By.id("btnSubmit")).click();
    try {
        Thread.sleep(3000);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
    System.out.println(driver.getCurrentUrl());
    assertEquals(driver.getCurrentUrl(), "http://localhost:8980/js/a/index");
}

image-20211227220438122

Jmeter

下载Jmeter和谷歌插件 BlazeMeter

在配置文件中修改编码集sampleresult.default.encoding=UTF-8防止乱码

直接写相当麻烦,使用blazemeter谷歌插件录制.jmx会快很多

selenium IDE差不多,也是录制

不过需要注册和登录才能下载.jmx

BlazeMeter插件是非常必要的,如果自己写消息头或者信息头之类的会非常麻烦,而且如果登录的信息是加密过的那就没办法写(JeeSite就是这样,下面是图片)

image-20211227214021991

选定业务

选取岗位管理模块的查看岗位,公司岗位的读取并使用jmeter测试

设计合适的负载模式,包括负载大小,加载方式

对于公司岗位的数据读取,使用

  • 单接口加压(起始人数50人,每隔60秒增加50人,加到200人为上限)

50人不断同时访问(线程数50),持续一段时间

在后台查看岗位数据时,人数一般不是很多,那么我们加大测试量,设置了10个线程,每个线程访问300次,共两个线程组

同时为了仿真,将第一个线程组持续1分钟,后一个线程组延后30s,持续30s

参考:

JMeter性能测试,完整入门篇

测试两种协议

http和jdbc

即网页访问测试和数据库读取信息测试

使用两种以上的断言

响应断言(相应的信息的筛选)

持续时间断言(相应多少时间)

json断言(我判断如果返回的数据是0就失败,json断言需要用到JOSNPath的特定语法)

json断言详解

对测试结果(表格和图形)进行分析

Jmeter可以将测试结果导出成图形和表格

导出数据

jmeter -n -t test.jmx -l ../log.txt -e -o ../

-n 无图形化运行

-t 被运行脚本

-l 将运行信息写入日志文件

-e 生成测试报告

-o 指定报告输出目录

出现类似这样即成功

Dec 26, 2021 8:52:55 PM java.util.prefs.WindowsPreferences <init>
WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0x80000002. Windows RegCreateKeyEx(...) returned error code 5.
Creating summariser <summary>
Created the tree successfully using test.jmx
Starting standalone test @ Sun Dec 26 20:52:55 CST 2021 (1640523175609)
Waiting for possible Shutdown/StopTestNow/HeapDump/ThreadDump message on port 4445
summary +      2 in 00:00:04 =    0.4/s Avg:    52 Min:    35 Max:    69 Err:     0 (0.00%) Active: 5 Started: 5 Finished: 0
summary +     18 in 00:00:27 =    0.7/s Avg:    54 Min:     4 Max:   483 Err:     1 (5.56%) Active: 0 Started: 5 Finished: 5
summary =     20 in 00:00:32 =    0.6/s Avg:    54 Min:     4 Max:   483 Err:     1 (5.00%)
Tidying up ...    @ Sun Dec 26 20:53:27 CST 2021 (1640523207851)
... end of run

安全性测试

暂无

Jenkins

Jenkins集成的部分可以看Jenkins 个人搭建流程记录 集成邮件系统(qq邮箱),gitlab服务器,freestyle风格 [[4 public/blog/posts/技术/Jenkins 个人搭建流程记录 集成邮件系统(qq邮箱),gitlab服务器,freestyle风格]]

插件下载Violations plugin

解释一下我做的

graph LR
a(本机) --> |将源代码提交到gitLab上面| b(虚拟机)

b --> |Jenkins拉取gitlab镜像| a

a --> |部署到云服务器| c(实际部署的云服务器)

本地部署了Jenkins,安装了JDK8,Maven3.8,源代码也放在本地,实际上要放在另一台服务器

虚拟机,安装了gitlab服务器,使用NAT本地可以访问虚拟机的gitlab

image-20211227220132305

image-20211227220155401

虚拟机网络设置

简单记录虚拟机安装的情况

启动gitlab服务
sudo gitlab-ctl start

gitlab服务停止
sudo gitlab-ctl stop

重启gitlab服务
sudo gitlab-ctl restart
停止并禁用虚拟机 NetworkManager 服务
systemctl stop NetworkManager
systemctl disable NetworkManager
重启网络服务
service network restart