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_
相关文章
|
2月前
|
Shell
一个用于添加/删除定时任务的shell脚本
一个用于添加/删除定时任务的shell脚本
116 1
|
2月前
|
Java Shell
「sh脚步模版自取」测试线排查的三个脚本:启动、停止、重启、日志保存
「sh脚步模版自取」测试线排查的三个脚本:启动、停止、重启、日志保存
45 1
|
1月前
|
存储 监控 测试技术
测试脚本编写和维护的最佳实践有哪些?
测试脚本编写和维护的最佳实践有哪些?
119 50
|
1月前
|
SQL 测试技术 API
如何编写API接口的自动化测试脚本
本文详细介绍了编写API自动化测试脚本的方法和最佳实践,涵盖确定测试需求、选择测试框架、编写测试脚本(如使用Postman和Python Requests库)、参数化和数据驱动测试、断言和验证、集成CI/CD、生成测试报告及维护更新等内容,旨在帮助开发者构建高效可靠的API测试体系。
|
1月前
|
Shell Linux 测试技术
6种方法打造出色的Shell脚本
6种方法打造出色的Shell脚本
69 2
6种方法打造出色的Shell脚本
|
1月前
|
存储 监控 前端开发
如何确保测试脚本的稳定性和可靠性?
确保测试脚本的稳定性和可靠性是保证性能测试结果准确有效的关键
|
1月前
|
XML JSON 监控
Shell脚本要点和难点以及具体应用和优缺点介绍
Shell脚本在系统管理和自动化任务中扮演着重要角色。尽管存在调试困难、可读性差等问题,但其简洁高效、易于学习和强大的功能使其在许多场景中不可或缺。通过掌握Shell脚本的基本语法、常用命令和函数,并了解其优缺点,开发者可以编写出高效的脚本来完成各种任务,提高工作效率。希望本文能为您在Shell脚本编写和应用中提供有价值的参考和指导。
65 1
|
1月前
|
监控 网络协议 Java
一些适合性能测试脚本编写和维护的工具
一些适合性能测试脚本编写和维护的工具
|
1月前
|
测试技术 数据库连接 数据库
测试脚本的编写和维护对性能测试结果有何影响?
测试脚本的编写和维护对性能测试结果有着至关重要的影响,
29 1
|
1月前
|
Ubuntu Shell 开发工具
ubuntu/debian shell 脚本自动配置 gitea git 仓库
这是一个自动配置 Gitea Git 仓库的 Shell 脚本,支持 Ubuntu 20+ 和 Debian 12+ 系统。脚本会创建必要的目录、下载并安装 Gitea,创建 Gitea 用户和服务,确保 Gitea 在系统启动时自动运行。用户可以选择从官方或小绿叶技术博客下载安装包。
58 2