shell脚本写的班级管理系统测试用例

简介: shell脚本写的班级管理系统测试用例

假设我们要测试一个简单的班级管理系统,其中包括学生的姓名、年龄、成绩三个属性。下面是一个简单的学生信息增删改查的操作示例:
首先,我们需要先初始化班级和学生的信息:

# 初始化班级信息
init_classroom() {
     
    curl -X POST -d '{"name":"class1"}' http://localhost:8080/classroom 
}

# 初始化学生信息
init_student() {
   
    for i in {
   1..3}; do
        echo "{\"name\":\"student${i}\",\"age\":$((i+10)),\"score\":$((i*50))}" | \
        curl -X POST -H "Content-Type: application/json" -d @- http://localhost:8080/student
    done
}

接下来,我们可以写几个简单的测试用例:

  • 创建一个新班级:
    test_add_classroom() {
         
    local classroom_id=$(curl -X POST -d "{\"name\":\"class2\"}" http://localhost:8080/classroom | jq -r '.id')
    assertEquals "class2" "$(curl -X GET "http://localhost:8080/classroom/${classroom_id}/info" | jq -r '.name')"
    }
    
  • 删除一个班级:
    test_remove_classroom() {
         
    local classroom_id=$(curl -X POST -d "{\"name\":\"class3\"}" http://localhost:8080/classroom | jq -r '.id')
    assertEquals "200" "$(curl -X DELETE "http://localhost:8080/classroom/${classroom_id}" | jq -r '.code')"
    }
    
  • 更新一个班级:

    test_update_classroom() {
         
    local classroom_id=$(curl -X POST -d "{\"name\":\"class4\"}" http://localhost:8080/classroom | jq -r '.id')
    assertEquals "200" "$(curl -X PUT -d "{
         \"name\":\"new_name\"}" "http://localhost:8080/classroom/${classroom_id}" | jq -r '.code')"
    
    assertEquals "new_name" "$(curl -X GET "http://localhost:8080/classroom/${classroom_id}/info" | jq -r '.name')"
    }
    
  • 查询学生信息:
    test_query_students() {
         
    local student_ids=$(curl -X GET "http://localhost:8080/students" | jq -r '.[] | .id')
    for student_id in $student_ids; do
        assertEquals "student$i" "$(curl -X GET "http://localhost:8080/student/${student_id}/info" | jq -r '.name')"
    done
    }
    
  • 添加一个学生:
    test_add_student() {
         
    local student_id=$(curl -X POST -d "{\"name\":\"student4\",\"age\":40,\"score\":200}" http://localhost:8080/student | jq -r '.id')
    assertEquals "200" "$(curl -X GET "http://localhost:8080/student/${student_id}/info" | jq -r '.code')"
    assertEquals "student4" "$(curl -X GET "http://localhost:8080/student/${student_id}/info" | jq -r '.name')"
    }
    
  • 修改一个学生:

    test_update_student() {
         
    local student_id=$(curl -X POST -d "{\"name\":\"student5\",\"age\":50,\"score\":250}" http://localhost:8080/student | jq -r '.id')
    assertEquals "200" "$(curl -X PUT -d "{
         \"name\":\"new_name\"}" "http://localhost:8080/student/${student_id}" | jq -r '.code')"
    
    assertEquals "new_name" "$(curl -X GET "http://localhost:8080/student/${student_id}/info" | jq -r '.name')"
    }
    
  • 删除一个学生:
    test_remove_student() {
         
    local student_id=$(curl -X POST -d "{\"name\":\"student6\",\"age\":60,\"score\":300}" http://localhost:8080/student | jq -r '.id')
    assertEquals "200" "$(curl -X DELETE "http://localhost:8080/student/${student_id}" | jq -r '.code')"
    }
    

最后,我们可以定义一个函数来运行所有的测试用例:

run_test() {
   
    init_classroom
    init_student
    test_add_classroom
    test_remove_classroom
    test_update_classroom
    test_query_students
    test_add_student
    test_update_
相关文章
|
1月前
|
Shell
一个用于添加/删除定时任务的shell脚本
一个用于添加/删除定时任务的shell脚本
76 1
|
1月前
|
Java Shell
「sh脚步模版自取」测试线排查的三个脚本:启动、停止、重启、日志保存
「sh脚步模版自取」测试线排查的三个脚本:启动、停止、重启、日志保存
37 1
|
21天前
|
Shell Linux 测试技术
6种方法打造出色的Shell脚本
6种方法打造出色的Shell脚本
45 2
6种方法打造出色的Shell脚本
|
8天前
|
存储 监控 前端开发
如何确保测试脚本的稳定性和可靠性?
确保测试脚本的稳定性和可靠性是保证性能测试结果准确有效的关键
|
7天前
|
XML JSON 监控
Shell脚本要点和难点以及具体应用和优缺点介绍
Shell脚本在系统管理和自动化任务中扮演着重要角色。尽管存在调试困难、可读性差等问题,但其简洁高效、易于学习和强大的功能使其在许多场景中不可或缺。通过掌握Shell脚本的基本语法、常用命令和函数,并了解其优缺点,开发者可以编写出高效的脚本来完成各种任务,提高工作效率。希望本文能为您在Shell脚本编写和应用中提供有价值的参考和指导。
26 1
|
8天前
|
监控 网络协议 Java
一些适合性能测试脚本编写和维护的工具
一些适合性能测试脚本编写和维护的工具
|
8天前
|
存储 监控 测试技术
测试脚本编写和维护的最佳实践有哪些?
测试脚本编写和维护的最佳实践有哪些?
|
8天前
|
测试技术 数据库连接 数据库
测试脚本的编写和维护对性能测试结果有何影响?
测试脚本的编写和维护对性能测试结果有着至关重要的影响,
15 1
|
12天前
|
Ubuntu Shell 开发工具
ubuntu/debian shell 脚本自动配置 gitea git 仓库
这是一个自动配置 Gitea Git 仓库的 Shell 脚本,支持 Ubuntu 20+ 和 Debian 12+ 系统。脚本会创建必要的目录、下载并安装 Gitea,创建 Gitea 用户和服务,确保 Gitea 在系统启动时自动运行。用户可以选择从官方或小绿叶技术博客下载安装包。
31 2
|
26天前
|
监控 网络协议 Shell
ip和ip网段攻击拦截系统-绿叶结界防火墙系统shell脚本
这是一个名为“小绿叶技术博客扫段攻击拦截系统”的Bash脚本,用于监控和拦截TCP攻击。通过抓取网络数据包监控可疑IP,并利用iptables和firewalld防火墙规则对这些IP进行拦截。同时,该系统能够查询数据库中的白名单,确保合法IP不受影响。此外,它还具备日志记录功能,以便于后续分析和审计。
43 6