智能体测开Day43
实操练习有如下的表CREATE TABLE student(sid INT PRIMARY KEY AUTO_INCREMENT COMMENT 学生编号,sname VARCHAR(20) NOT NULL COMMENT 学生姓名,sex CHAR(1) COMMENT 性别男/女,age TINYINT COMMENT 年龄,class_id INT COMMENT 班级编号,birthday DATE COMMENT 生日);INSERT INTO student(sname,sex,age,class_id,birthday) VALUES(张三,男,18,1,2008-02-10),(李四,女,17,1,2009-05-15),(王五,男,18,2,2008-08-22),(赵六,女,19,2,2007-12-03),(孙七,男,17,1,2009-01-20),(周八,女,18,3,2008-06-18),(吴九,男,19,3,2007-09-09),(郑十,女,17,2,2009-11-11);CREATE TABLE score(scid INT PRIMARY KEY AUTO_INCREMENT COMMENT 成绩ID,sid INT COMMENT 学生编号关联student.sid,subject VARCHAR(20) NOT NULL COMMENT 科目,score TINYINT COMMENT 分数0-100);-- 测试数据INSERT INTO score(sid,subject,score) VALUES(1,语文,88),(1,数学,92),(1,英语,76),(2,语文,95),(2,数学,80),(2,英语,90),(3,语文,72),(3,数学,65),(3,英语,83),(4,语文,81),(4,数学,96),(4,英语,89),(5,语文,66),(5,数学,59),(5,英语,70),(6,语文,91),(6,数学,87),(6,英语,93),(7,语文,55),(7,数学,62),(7,英语,68),(8,语文,79),(8,数学,85),(8,英语,77);-- (1). 新增往学生表插入一名新学生姓名「钱十一」女18 岁班级 3生日 2008-03-25。 INSERT INTO student(sname,sex,age,class_id,birthday) VALUES (钱十一,女,18,3,2008-03-25) -- (2). 新增给学生钱十一添加 3 科成绩语文 82、数学 75、英语 94。 INSERT INTO score(sid,subject,score) VALUES ((SELECT sid s from student where sname 钱十一),语文,82),((SELECT sid s from student where sname 钱十一),数学,75),((SELECT sid s from student where sname 钱十一),英语,94) -- (3). 改将王五的数学成绩改为 78 分。 UPDATE score set score78 where sid(SELECT sid from student where sname 王五) and subject 数学 -- (4). 改所有班级 1 的学生年龄统一 1。 UPDATE student set age age1 where class_id 1 -- (5). 删删除数学成绩低于 60 分的成绩记录。 DELETE from score where subject 数学 and score 60 -- (6). 单表查询查询所有女生显示姓名、年龄、班级按年龄降序。 SELECT sname,age,class_id from student where sex 女 ORDER BY age desc -- (7). 统计每个科目的平均分、最高分、最低分、总人数。 SELECT AVG(score),max(score),min(score),count(sid),subject from score GROUP BY subject -- (8). 统计每个学生一共有几门科目成绩只显示有 3 科成绩的学生 ID。 select sid from score GROUP BY sid HAVING count(subject) 3 -- (9). 统计各个班级的学生人数过滤人数≥3 人的班级。 select class_id,count(sid) c from student GROUP BY class_id HAVING c 3 -- (10). 查询每门科目不及格60的学生数量。 SELECT subject,count(*) from score where score 60 GROUP BY subject -- (11). 内连接两表查询所有学生姓名、科目、分数只看语文成绩。 select st.sname,sc.subject,sc.score from student st join score sc on st.sid sc.sid where sc.subject 语文 -- (12). 左连接查询所有学生信息 对应成绩没有成绩的学生科目显示「无成绩」。 SELECT student.*,IFNULL(score.score,无成绩) score from student left join score on student.sid score.sid -- (13). 查询姓名、班级、各科总分按总分从高到低排序。 SELECT student.sname,student.class_id,sum(score.score) sum_score from student join score on student.sid score.sid GROUP BY student.sid -- (14). 查询班级 2 所有学生的数学成绩展示姓名、数学分数。 SELECT student.sname,score.score math_score from student join score on student.sid score.sid where subject 数学 and student.class_id 2 -- (15). 查询语文分数大于 90 分的学生姓名、年龄、班级、语文成绩。 SELECT student.sname,student.age,student.class_id,score.score yuwen_score from student join score on student.sidscore.sid where subject 语文 and score.score90 -- (16). 查询平均分高于 85 分的学生展示姓名、平均分、总分。 SELECT student.sname,avg(score.score) a,sum(score.score) from student join score on student.sid score.sid GROUP BY student.sid HAVING a 85test_003import pytest import requests pytest.fixture(params[ {casename:5位密码报错, casedata:{mobilephone:17731548395,pwd:12345}, expect:{status:0,code:20108,msg:密码长度必须为6~18}}, {casename:19位密码报错, casedata:{mobilephone:17731548395,pwd:123456789abcedf1234}, expect:{status:0,code:20108,msg:密码长度必须为6~18}}, {casename:密码为空报错, casedata:{mobilephone:17731548395,pwd:}, expect:{status:0,code:20103,msg:密码不能为空}}, ]) def register_data(request): return request.param def test_register(register_data): print(f测试用例标题{register_data[casename]}) r requests.get(http://127.0.0.1:8088/futureloan/mvc/api/member/register,paramsregister_data[casedata]) assert r.json()[msg] register_data[expect][msg] assert r.json()[code] register_data[expect][code] assert r.json()[status] register_data[expect][status]baserequests import requests class BaseRequests: def __init__(self): self.session requests.session() def post(self,url,dataNone,jsonNone,**kwargs): try: r self.session.post(url,datadata,jsonjson,**kwargs) # 参数的透传 print(f发送post请求成功url{url}参数{data}、{json}、{kwargs}) print(f发送post请求成功响应体{r.text}) return r except Exception as e: print(f发送post请求失败url{url}参数{data}、{json}、{kwargs}) print(f发送post请求失败异常信息{e}) def get(self,url,params,**kwargs): try: r self.session.get(url,params,**kwargs) #参数的透传 print(f发送get请求成功url{url}参数{params}、{kwargs}) #log. print(f发送get请求成功响应体{r.text}) return r except Exception as e: print(f发送get请求失败url{url}参数{params}、{kwargs}) print(f发送get请求失败异常信息{e}) def put(self,url,data,**kwargs): try: r self.session.put(url,data,**kwargs) print(f发送put请求成功url{url}参数{data}、{kwargs}) # log. print(f发送put请求成功响应体{r.text}) return r except Exception as e: print(f发送put请求失败url{url}参数{data}、{kwargs}) print(f发送put请求失败异常信息{e}) def delete(self,url,**kwargs): try: r self.session.delete(url,**kwargs) print(f发送delete请求成功url{url}参数{kwargs}) # log. print(f发送delete请求成功响应体{r.text}) return r except Exception as e: print(f发送delete请求失败url{url}参数{kwargs}) print(f发送delete请求失败异常信息{e}) if __name__ __main__: br BaseRequests() br.get(http://127.0.0.1:8088/futureloan/mvc/api/member/register,params{mobilephone:17731548395}) br.post(http://127.0.0.1:8088/futureloan/mvc/api/member/register, data{mobilephone: 17731548395})readfile 获取项目路径 解析csv 解析ini 解析excel import configparser import os.path import openpyxl import yaml def get_project_path(): # 获取父路径 cf os.path.realpath(__file__) # readfile.py cd os.path.dirname(cf) #caw cd os.path.dirname(cd) #futureloan return cd / # 解析ini文件 def read_ini(path,key): # 获取完整的文件路径 path get_project_path() path print(path) cp configparser.ConfigParser() cp.read(path) value cp.get(env,key) return value def read_yaml(path): path get_project_path() path with open(path, r, encodingutf-8) as f: content f.read() # 字符串 # pyYaml return yaml.safe_load(content) # 列表[字典] # 解析excel文件 def read_excel(filename,sheet Sheet1): # 获取完整的文件路径 filepath os.path.join(get_project_path(), data, filename) # 加载整个表格文件 wb openpyxl.load_workbook(str(filepath)) # 获取对应工作表 wsh wb[sheet] rl [] for row in wsh: cells [] for cell in row: # 如果单元格是None存储空字符串 if not cell.value: cells.append() else: cells.append(cell.value) # 将子列表一行信息存储到大的列表中 rl.append(cells) return rl[1::] if __name__ __main__: print(read_ini(data/env.ini, base_url)) print(read_ini(data/env.ini, db_info)) print(read_yaml(data/register.yaml))memberdef register(base_url,br,data): :param base_url: 从env.ini读取出来 :param br: BaseRequests的实例 :param data: 注册的数据 :return: url base_url /futureloan/mvc/api/member/register return br.post(url,datadata) def login(base_url,br,data): url base_url /futureloan/mvc/api/member/login return br.post(url,datadata) def recharge(base_url,br,data): url base_url /futureloan/mvc/api/member/recharge return br.post(url,datadata)register.yaml- casename: 密码为空报错密码不能为空 casedata: {mobilephone: 18091234567, pwd: } expect: {status: 0, code: 20103, data: None, msg: 密码不能为空} - casename: 手机号码为空报错手机号不能为空 casedata: {mobilephone: , pwd: 123456} expect: {status: 0, code: 20103, data: None, msg: 手机号不能为空} - casename: 密码大于18位报错密码长度必须为6~18 casedata: {mobilephone: 18091234567, pwd: 1234567890123456789} expect: {status: 0, code: 20108, data: None, msg: 密码长度必须为6~18} - casename: 密码小于6位报错密码长度必须为6~18 casedata: {mobilephone: 18091234567, pwd: 12345} expect: {status: 0, code: 20108, data: None, msg: 密码长度必须为6~18}test_registerimport pytest from ApiAutoTest.futureloan.baw import member from ApiAutoTest.futureloan.caw.readfile import read_yaml pytest.fixture(paramsread_yaml(data/register.yaml)) def register_data(request): return request.param def test_register(register_data,base_url,br): print(f测试用例标题{register_data[casename]}) r member.register(base_url, br,dataregister_data[casedata]) assert r.json()[msg] register_data[expect][msg] assert r.json()[code] register_data[expect][code] assert r.json()[status] register_data[expect][status]

相关新闻

STM32CubeIDE新手入门:从零创建工程到点亮LED全流程详解

STM32CubeIDE新手入门:从零创建工程到点亮LED全流程详解

1. 项目概述:为什么从新建工程开始如果你刚拿到一块STM32开发板,或者从标准库、Keil MDK环境转过来,面对STM32CubeIDE这个“庞然大物”,第一步该做什么?我的经验是,不要一上来就研究复杂的HAL库函数或外设配…

2026/8/7 8:49:41 阅读更多 →
Unity Input System实战避坑指南:从核心原理到高频问题解决方案

Unity Input System实战避坑指南:从核心原理到高频问题解决方案

1. 项目概述:为什么我们需要关注Input System的“坑”?作为一个在Unity项目里摸爬滚打了十多年的老鸟,我见过太多团队在输入管理上栽跟头。从最早自己手搓Input.GetKey,到后来用各种第三方插件,再到Unity官方终于推出了…

2026/8/7 5:34:10 阅读更多 →
FastAPI 调用第三方接口 403 排查实战:从百炼 LLM 到 apimy.cn 学历验证

FastAPI 调用第三方接口 403 排查实战:从百炼 LLM 到 apimy.cn 学历验证

本文记录一个 FastAPI 项目(yujhg 后端)在接入「阿里云百炼 DashScope LLM」与「apimy.cn 学历验证接口」时,连续踩中的 6 个 403 / 400 坑,以及逐个定位、修复的完整过程。希望能帮到同样被 403 请求密钥KEY不正确、403 Workspac…

2026/8/7 5:43:48 阅读更多 →

最新新闻

基于BERT微调的中文情感分析实战:从预训练模型到部署应用

基于BERT微调的中文情感分析实战:从预训练模型到部署应用

1. 项目概述:从预训练到微调,让BERT理解中文情感情感分析,或者说观点挖掘,是自然语言处理领域一个经典且应用广泛的任务。简单来说,就是让机器读懂一段文本,并判断其中蕴含的情感倾向,比如是正面…

2026/8/7 8:49:58 阅读更多 →
LinkSwift网盘直链下载助手:九大网盘一站式解决方案

LinkSwift网盘直链下载助手:九大网盘一站式解决方案

LinkSwift网盘直链下载助手:九大网盘一站式解决方案 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云…

2026/8/7 8:49:58 阅读更多 →
Unity多人FPS开发实战:从网络同步到性能优化的完整指南

Unity多人FPS开发实战:从网络同步到性能优化的完整指南

1. 项目概述:为什么选择Unity构建多人FPS?如果你点开这篇文章,大概率和我一样,是个对射击游戏充满热情,并且不满足于只当一个玩家,更想亲手把它造出来的开发者。Unity,作为目前全球使用最广泛的…

2026/8/7 8:49:58 阅读更多 →
【会议征稿通知 | 成都信息工程大学主办 | IEEE出版 | EI 、Scopus稳定检索】2026人工智能、信息物理系统和智能计算国际学术会议(ICAICI 2026)

【会议征稿通知 | 成都信息工程大学主办 | IEEE出版 | EI 、Scopus稳定检索】2026人工智能、信息物理系统和智能计算国际学术会议(ICAICI 2026)

2026 人工智能、信息物理系统和智能计算国际学术会议(ICAICI 2026) 2026 International Conference on Artificial Intelligence, Cyber-Physical Systems and Intelligent Computing 2026年9月11日-9月13日 | 中国-成都 大会官网:www.ic-…

2026/8/7 8:49:58 阅读更多 →
UE4项目实战:Vulkan渲染后端迁移指南与性能优化

UE4项目实战:Vulkan渲染后端迁移指南与性能优化

1. 项目概述:为什么要在UE4里折腾Vulkan? 如果你是一个用虚幻引擎4(UE4)做项目的开发者,尤其是项目规模稍微大一点,或者对性能有那么点“洁癖”,那你大概率已经不止一次在项目设置里看到过“Vul…

2026/8/7 8:49:58 阅读更多 →
C++ std::literals:告别魔法数字,实现类型安全的字面量编程

C++ std::literals:告别魔法数字,实现类型安全的字面量编程

1. 从“魔法数字”到字面量&#xff1a;为什么我们需要std::literals在C的日常开发中&#xff0c;我们经常要和各种类型的字面值打交道。比如&#xff0c;你写一个循环&#xff0c;可能会顺手敲下for (int i 0; i < 100; i)&#xff0c;这里的0和100就是整数字面量。或者处…

2026/8/7 8:48:57 阅读更多 →

日新闻

为什么scrcpy成为Android投屏的终极解决方案:完整实战指南

为什么scrcpy成为Android投屏的终极解决方案:完整实战指南

为什么scrcpy成为Android投屏的终极解决方案&#xff1a;完整实战指南 【免费下载链接】scrcpy Display and control your Android device 项目地址: https://gitcode.com/GitHub_Trending/sc/scrcpy 想要将Android手机屏幕完美投射到电脑上&#xff0c;享受大屏操作的自…

2026/8/7 0:00:19 阅读更多 →
如何在5分钟内掌握Tom Select:打造现代化表单选择器的终极指南

如何在5分钟内掌握Tom Select:打造现代化表单选择器的终极指南

如何在5分钟内掌握Tom Select&#xff1a;打造现代化表单选择器的终极指南 【免费下载链接】tom-select Tom Select is a lightweight (~16kb gzipped) hybrid of a textbox and select box. Forked from selectize.js to provide a framework agnostic autocomplete widget wi…

2026/8/7 0:00:19 阅读更多 →
5分钟快速上手:NSZ压缩工具终极指南,轻松管理Switch游戏文件

5分钟快速上手:NSZ压缩工具终极指南,轻松管理Switch游戏文件

5分钟快速上手&#xff1a;NSZ压缩工具终极指南&#xff0c;轻松管理Switch游戏文件 【免费下载链接】nsz NSZ - Homebrew compatible NSP/XCI compressor/decompressor 项目地址: https://gitcode.com/gh_mirrors/ns/nsz 你是否在为Nintendo Switch游戏文件占用大量存储…

2026/8/7 0:00:19 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流&#xff1a;一个核心问题的诞生想象一下&#xff0c;你是一个城市供水系统的总工程师。你的城市有多个水源&#xff08;水库&#xff09;&#xff0c;需要通过一个复杂的地下管道网络&#xff0c;将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/6 22:02:27 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示&#xff1a;本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/6 22:02:27 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起&#xff1a;为什么我们需要互相关几年前&#xff0c;我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号&#xff0c;理论上它们接收到的声音波形应该非常相似&#xff0c;只是由于麦克风位置不同&#xff…

2026/8/6 22:02:27 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速&#xff1a;macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/5 23:28:39 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南&#xff1a;3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗&#xff1f;ncmdump解密工具帮你轻松解决这个困…

2026/8/6 22:02:28 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片&#xff1a;为英语学习 App 打造桌面级学习助手适用平台&#xff1a;HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0&#xff08;API 26 Beta&#xff09;新增了 AgentCard 智能体卡片能力&#xff0c;这是继 HMAF&#xff08;鸿蒙智能体框架&#x…

2026/8/5 23:46:51 阅读更多 →