IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 正方教务系统——用Postman优雅的选课 -> 正文阅读

[开发测试]正方教务系统——用Postman优雅的选课

一.引言

由于每个学期开学都要在学校的土豆服务器上进行抢课大战(总抢不到),我对学校的教务系统(正方教务系统V-8.1.3)早已深恶痛绝,因此,去年用python模拟登陆(selenium)写了个网课捡漏的脚本(当有同学退课时,由于脚本一直运行,因此可以迅速选上)。本以为这学期我的脚本就可以大展身手,哪知道今年学校突然说改变选课方案,改为分年级分时段选课只允许选课不允许退课,这就代表了,我的捡漏脚本被宣判死刑了。

但只要思想不滑坡,方法总比困难多,经过我的不懈努力,最终成功实现如下效果:

  • 当只允许高年级选课时,低年级可突破限制,与高年级一同选课
  • 突破不允许退课限制,自由退课

二.前提条件

  1. 有一个可以正常进行通识选修课选课的账号A

  2. 有一个可以进行主修课选课,但不允许选修课选课的账号B(简易版教程需要,进阶版教程不需要)

    ps:限制还是挺多的,但是事实上只要知道了选修课对应的xkkz_id,就可以直接通过Postman为所欲为

三.使用到的工具

四.教程

简易版

1.登陆高年级账号,进入选课界面,点击通识选修课

2.F12打开开发者工具,复制xkkz_idvalue

在这里插入图片描述

3.登录低年级账号,进入选课界面,F12打开开发者工具,将代码中的xkkz_idvalue值替换为上面复制的值

4.将kklxdmvalue值改为10

5.将njdm_idvalue值改为 允许进行选课的年级,如现在允许2019级进行选课,则改为2019

在本示例中,由于高年级账号为2019级的,因此将njdm_id改为2019

6.回到页面,点击搜索键,发现出现的课程为通识选修课,且可以正常进行选课
在这里插入图片描述

进阶版

1.同简易版一样,登陆高年级账号先把xkkz_id的值复制了,后面会用到

2.登录低年级账号,进入选课界面,F12进入开发者工具,点击Network,刷新界面,找到含Cookie的请求,查看Cookie,复制JESSIONID

在这里插入图片描述

3.打开Postman,新建Post请求用于搜索课程,具体如下:

请求地址:

https://XXXXX/xsxk/zzxkyzb_cxZzxkYzbPartDisplay.html

请求头:

JSESSIONID为第二步复制的值

Cookie:JSESSIONID=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

请求参数

变量名值(示例)注释是否必须
xkxnm2021当前学期年份如2021-2022 即2021?
xkxqm12定值?
kklxdm1001为主修课 10为选修课?
kspage1页号?
jspage10一页显示的数量?
filter_list[0]XXX搜索的课程名称

效果如下:

在这里插入图片描述

4.找到要选择的课程,复制其kch_id

5.新建请求,用于显示课程具体信息,具体参数如下:

请求地址:

https://XXXXX/xsxk/zzxkyzbjk_cxJxbWithKchZzxkYzb.html

请求头:

JSESSIONID为第二步复制的值

Cookie:JSESSIONID=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

请求参数

变量名值(示例)注释是否必须
bklx_id0定值?
njdm_id2019年级代码(允许正常选课的年级)?
xkxnm2021当前学期年份如2021-2022 即2021?
xkxqm12定值?
kklxdm1010为选修课01为主修课?
kch_idXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX课程号(第四步复制的)?
xkkz_idD824D824D824D824D824D824D824D824第一步复制的值?

效果如下:

在这里插入图片描述

6.复制do_jxb_id

7.新建请求,用于进行选课,具体参数如下:

请求地址:

https://XXXXX/xsxk/zzxkyzbjk_xkBcZyZzxkYzb.html

请求头:

JSESSIONID为第二步复制的值

Cookie:JSESSIONID=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

请求参数

变量名值(示例)注释是否必须
jxb_ids7cad8a50a08b2c9…(共257个字符)教学班号(动态刷新) 第六步复制的值?
kch_idXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX课程号(第四步复制的)?
qz0定值?

效果如下:

flag==1则表示选课成功

在这里插入图片描述


教程结束,总的流程差不多就是这个样子,总体而言可玩性非常高,太刑了👀

我写了相对更全更完整的正方教务系统的接口文档说明已选课程查询接口退课接口可移步文档查看

文档地址:正方教务系统选课接口文档说明

🎈文档持续更新中,欢迎Star

希望对你有帮助,谢谢!

PS:教程仅供开发交流使用,禁止用于个人盈利!

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2022-02-24 15:36:05  更:2022-02-24 15:38:33 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 2:44:36-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码