评测电子档案系统,必须围绕三个核心维度:功能性、性能、安全性。我们将搭建一个可复现的测试环境,用于后续所有操作。
使用Docker容器化部署,确保环境一致。假设被测系统为基于Java的典型B/S架构。
第一步:安装Docker与Docker Compose。
```bash Ubuntu/Debian系统 sudo apt-get update sudo apt-get install docker.io docker-compose -y sudo systemctl start docker sudo systemctl enable docker ```第二步:创建测试环境目录结构。
```bash mkdir -p ~/efs-eval/{deploy,test-data,scripts,results} cd ~/efs-eval ```第三步:准备被测系统。 这里以模拟系统为例,使用一个包含上传、检索、预览功能的Web应用。创建 `deploy/docker-compose.yml`:
```yaml version: '3.8' services: efs-app: image: openjdk:11-jre-slim container_name: efs-app-test ports: - "8080:8080" volumes: - ./app.jar:/app.jar - ./storage:/var/storage command: java -jar /app.jar environment: - SPRING_PROFILES_ACTIVE=test - DB_URL=jdbc:mysql://efs-db:3306/efs - DB_USER=root - DB_PASS=test123 depends_on: - efs-db networks: - efs-net efs-db: image: mysql:8.0 container_name: efs-db-test environment: MYSQL_ROOT_PASSWORD: test123 MYSQL_DATABASE: efs volumes: - mysql-data:/var/lib/mysql networks: - efs-net volumes: mysql-data: networks: efs-net: driver: bridge ```将你的系统应用JAR包命名为`app.jar`放入`deploy`目录。若无,可使用一个简单的Spring Boot示例应用替代。
功能性验证需覆盖档案全生命周期。我们使用Postman进行API测试,并生成自动化测试脚本。
第一步:安装Postman并创建集合。 下载地址:https://www.postman.com/downloads/。
第二步:创建环境变量。 在Postman中新建一个环境(如`EFS_Test`),设置变量:base_url值为http://localhost:8080/api。
第三步:编写核心测试用例请求。 在集合中创建以下请求:
第四步:编写自动化测试脚本。 在Postman的“Tests”标签页为每个请求添加断言。例如,对上传请求:
```javascript pm.test("Status code is 200", function () { pm.response.to.have.status(200); }); pm.test("Response has file ID", function () { var jsonData = pm.response.json(); pm.expect(jsonData.data.fileId).to.be.a('string'); // 将fileId保存为环境变量,供后续请求使用 pm.environment.set("current_file_id", jsonData.data.fileId); }); ```第五步:运行集合并导出报告。 使用Postman的Collection Runner运行整个集合。运行后,点击“Export Results”导出为JSON报告。
使用Apache JMeter进行压力测试,模拟真实用户操作场景。
第一步:下载并启动JMeter。 下载地址:https://jmeter.apache.org/download_jmeter.cgi。解压后运行bin/jmeter。
第二步:创建线程组。 右键Test Plan -> Add -> Threads (Users) -> Thread Group。设置:
第三步:添加HTTP请求采样器。 模拟核心场景:登录、检索、上传。
${base_url}/auth/login,方法POST,在Body Data中添加JSON:{"username":"testUser","password":"pass123"}。token。Bearer ${token},供后续请求使用。${base_url}/archive/search,添加参数keyword=测试。${base_url}/archive/upload,选择文件上传,指定一个固定的测试文件(如1MB的PDF)。
第四步:添加监听器。 右键线程组 -> Add -> Listener -> View Results Tree 和 Summary Report。
第五步:运行测试并分析结果。 重点关注Summary Report中的:
将结果保存为CSV文件到`~/efs-eval/results/`目录。
在压测同时,监控数据库关键指标。进入数据库容器:
```bash docker exec -it efs-db-test mysql -uroot -ptest123 ```执行以下SQL监控慢查询和连接数:
```sql -- 查看当前连接数 SHOW STATUS LIKE 'Threads_connected'; -- 开启慢查询日志(测试后关闭) SET GLOBAL slow_query_log = 'ON'; SET GLOBAL long_query_time = 2; -- 超过2秒的查询 ```将监控结果记录到日志文件中。
进行最基本的安全漏洞扫描,不涉及深度渗透测试。
使用OWASP ZAP进行自动化扫描。
第一步:下载并启动ZAP。 下载地址:https://www.zaproxy.org/download/。
第二步:快速扫描。 启动ZAP后,在“Quick Start”标签页,输入被测系统URL http://localhost:8080,点击“Attack”。
第三步:分析报告。 扫描完成后,进入“Report”菜单,选择“Generate HTML Report...”,保存到`~/efs-eval/results/zap_report.html`。重点关注:
使用Postman手动验证接口权限控制。
将测试结果以表格形式记录:
| 接口 | 测试动作 | 预期状态码 | 实际状态码 | 结果 |
|---|---|---|---|---|
| GET /archive/{id} | 无Token访问 | 401 | ||
| DELETE /archive/{id} | 普通用户Token访问 | 403 |
整合所有测试结果,形成结构化报告。
创建报告文档,包含以下章节:
测试完成后,停止并移除所有测试容器:
```bash cd ~/efs-eval/deploy docker-compose down -v ```至此,一个完整的、可落地的电子档案系统评测流程全部完成。所有步骤、命令、配置均可直接复制使用,并根据你的实际系统稍作调整(如修改API路径、性能测试参数等)。