高校舆情监控系统测试

系统介绍

云探-基于云计算的高校舆情监控系统是一个基于大数据技术、深度学习算法、云计算技术的综合性管理系统,主要用于收集、分析和监控高校舆情信息,帮助高校管理层及时了解学校在社会上的形象和声誉,及时处理和应对各种舆情事件,保障高校的形象和声誉。

主要有以下的功能:

(1)舆情监测:系统采集各大新闻媒体、社交媒体、微博、微信等网络平台上发布的有关高校的信息,包括新闻、评论、热点话题等,实时监测高校的舆情动态。

(2)舆情分析:系统对收集到的舆情信息进行分析,包括情感分析、主题分析、关键词分析等,帮助高校管理层全面了解舆情事件的背景和发展趋势。

(3)舆情预警:系统根据舆情分析结果,及时发出预警信息,提醒高校管理层注意相关舆情事件的进展情况,及时采取应对措施。

(4)数据统计:系统对舆情监测和分析结果进行数据统计和报表生成,为高校管理层提供数据支持,帮助其更好地了解和掌握高校的舆情形势。

项目部分源码

界面截图

  • 登录界面

在这里插入图片描述

  • 方案配置在这里插入图片描述

  • 数据总览

在这里插入图片描述

  • 文章分析

在这里插入图片描述

  • 评论分析

在这里插入图片描述

  • 政策分析

在这里插入图片描述

  • 热点分析

在这里插入图片描述

测试用例

  • 功能测试

在这里插入图片描述

  • 界面测试

在这里插入图片描述

  • 接口测试

在这里插入图片描述

  • 其他测试

在这里插入图片描述

自动化测试脚本

  • 功能测试
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 登录函数
def login(username, password):
    driver.find_element(By.ID, "username").send_keys(username)
    driver.find_element(By.ID, "password").send_keys(password)
    driver.find_element(By.ID, "login_button").click()

# 添加方案函数
def add_plan(keyword, threshold):
    driver.find_element(By.ID, "add_plan_button").click()
    driver.find_element(By.ID, "keyword").send_keys(keyword)
    driver.find_element(By.ID, "threshold").send_keys(threshold)
    driver.find_element(By.ID, "save_plan_button").click()

# 搜索方案函数
def search_plan(keyword):
    driver.find_element(By.ID, "search_plan_input").send_keys(keyword)
    driver.find_element(By.ID, "search_plan_button").click()

# 删除方案函数
def delete_plan(plan_name):
    driver.find_element(By.ID, "plan_name").click()
    driver.find_element(By.ID, "delete_plan_button").click()

# 获取账户函数
def get_account():
    driver.find_element(By.ID, "get_account_button").click()
    assert driver.find_element(By.ID, "get_account_modal").is_displayed()

# 测试用例
def test_login():
    # 账户名、密码正确
    login("admin", "123456")
    assert WebDriverWait(driver, 10).until(EC.title_is("高校舆情监控系统"))

    # 账户名为空
    login("", "123456")
    assert driver.find_element(By.ID, "username_error").text == "请输入账户名"

    # 账户名不存在
    login("not_exist", "123456")
    assert driver.find_element(By.ID, "username_error").text == "账户名不存在"

    # 密码为空
    login("admin", "")
    assert driver.find_element(By.ID, "password_error").text == "请输入密码"

    # 密码位数不正确
    login("admin", "123")
    assert driver.find_element(By.ID, "password_error").text == "密码长度必须为6-16位"
    
    login("admin", "1234567891011121314")
    assert driver.find_element(By.ID, "password_error").text == "密码长度必须为6-16位"

    # 密码错误
    login("admin", "wrong_password")
    assert driver.find_element(By.ID, "password_error").text == "请输入正确的密码"
    
    # 点击获取账户
    get_account()
    assert driver.find_element(By.ID, "get_account_modal").is_displayed()
    
def test_plan_config():
  # 关键词合规阈值设置
  add_plan("keyword1", "10")
  assert driver.find_element(By.ID, "plan_name").text == "keyword1"

  # 阈值为非数字
  add_plan("keyword2", "abc")
  assert driver.find_element(By.ID, "threshold_error").text == "请输入数字"

  # 阈值为负数
  add_plan("keyword3", "-1")
  assert driver.find_element(By.ID, "threshold_error").text == "阈值不能为负数"

  # 阈值超过范围
  add_plan("keyword4", "101")
  assert driver.find_element(By.ID, "threshold_error").text == "阈值范围为1-100"

  # 搜索方案
  search_plan("keyword1")
  assert driver.find_element(By.ID, "plan_name").text == "keyword1"

  # 搜索关键词不存在
  search_plan("not_exist")
  assert driver.find_element(By.ID, "search_result").text == "没有找到符合条件的方案"

  # 搜索关键词为空
  search_plan("")
  assert driver.find_element(By.ID, "search_result").text == "请输入搜索关键词"

  # 删除方案
  delete_plan("keyword1")
  assert driver.find_element(By.ID, "plan_list").text == ""

  # 未选择方案
  delete_plan("")
  assert driver.find_element(By.ID, "delete_plan_error").text == "请选择要删除的方案"

  # 选择多个方案
  driver.find_element(By.ID, "plan_name1").click()
  driver.find_element(By.ID, "plan_name2").click()
  delete_plan("")
  assert driver.find_element(By.ID, "delete_plan_error").text == "只能选择一个方案进行删除"
    
def test_content_analysis():
  # 内容展示
  content = """
  这是测试内容,包含敏感词“测试”。
  """

  # 模拟内容展示
  driver.find_element(By.ID, "content").send_keys(content)

  # 断言内容是否显示
  assert driver.find_element(By.ID, "content").text == content

  # 断言敏感词是否高亮显示
  assert driver.find_element(By.ID, "keyword").get_attribute("class") == "highlight"

  # 断言内容支持分页
  driver.find_element(By.ID, "next_page").click()
  assert driver.find_element(By.ID, "content").text != content

  # 断言内容支持排序
  driver.find_element(By.ID, "sort_by_time").click()
  assert driver.find_element(By.ID, "content").text != content

  # 链接有效性
  link = "https://www.baidu.com"

  # 模拟链接
  driver.find_element(By.ID, "link").send_keys(link)

  # 断言链接可以正常打开
  driver.find_element(By.ID, "open_link").click()
  assert driver.current_url == link

  # 断言链接跳转到正确页面
  driver.find_element(By.ID, "link").send_keys("")
  driver.find_element(By.ID, "open_link").click()
  assert driver.current_url == "https://www.google.com"

  # 断言链接已失效
  driver.find_element(By.ID, "link").send_keys("")
  driver.find_element(By.ID, "open_link").click()
  assert driver.find_element(By.ID, "link_error").text == "链接已失效"

  # 断言链接跳转到错误页面
  driver.find_element(By.ID, "link").send_keys("")
  driver.find_element(By.ID, "open_link").click()
  assert driver.find_element(By.ID, "link_error").text == "链接跳转到错误页面"

  # 情感极性分析
  content1 = ""
  content2 = ""

  # 模拟不同情感极性的内容
  driver.find_element(By.ID, "content1").send_keys(content1)
  driver.find_element(By.ID, "content2").send_keys(content2)

  # 断言情感极性分析的准确性
  assert driver.find_element(By.ID, "sentiment1").text == "正面"
  assert driver.find_element(By.ID, "sentiment2").text == "负面"

  # 时间戳准确性
  timestamp1 = "2023-11-16 12:00:00"
  timestamp2 = "2023-11-17 12:00:00"

  # 模拟不同时间戳的内容
  driver.find_element(By.ID, "timestamp1").send_keys(timestamp1)
  driver.find_element(By.ID, "timestamp2").send_keys(timestamp2)

  # 断言时间戳是否正确显示
  assert driver.find_element(By.ID, "time1").text == timestamp1
  assert driver.find_element(By.ID, "time2").text == timestamp2  

  • 接口测试
import unittest

class TestAPI(unittest.TestCase):

    def test_hotspot_analysis(self):
        # 正向用例
        params = {
            "token": "",
            "text": ""
        }
        response = requests.get("", params=params)
        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.json()["success"], True)

        # token为空
        params = {
            "text": ""
        }
        response = requests.get("", params=params)
        self.assertEqual(response.status_code, 400)
        self.assertEqual(response.json()["error"], "token is required")

        # token错误
        params = {
            "token": "",
            "text": ""
        }
        response = requests.get("", params=params)
        self.assertEqual(response.status_code, 401)
        self.assertEqual(response.json()["error"], "invalid token")

        # 参数为空
        response = requests.get("")
        self.assertEqual(response.status_code, 400)
        self.assertEqual(response.json()["error"], "parameters are required")

        # 参数过多
        params = {
            "token": "",
            "text": "",
            "extra_param": ""
        }
        response = requests.get("", params=params)
        self.assertEqual(response.status_code, 400)
        self.assertEqual(response.json()["error"], "invalid parameters")

        # 参数错误
        params = {
            "token": "",
            "text": 123
        }
        response = requests.get("", params=params)
        self.assertEqual(response.status_code, 400)
        self.assertEqual(response.json()["error"], "invalid parameters")
        
	def test_comment_analysis(self):
        # 正向用例
        params = {
            "token": "",
            "url": "",
            "comment_id": 123
        }
        response = requests.get("", params=params)
        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.json()["success"], True)

        # token为空
        params = {
            "url": "",
            "comment_id": 123
        }
        response = requests.get("", params=params)
        self.assertEqual(response.status_code, 400)
        self.assertEqual(response.json()["error"], "token is required")

        # token错误
        params = {
            "token": "",
            "url": "",
            "comment_id": 123
        }
        response = requests.get("", params=params)
        self.assertEqual(response.status_code, 401)
        self.assertEqual(response.json()["error"], "invalid token")

        # 参数为空
        response = requests.get("")
        self.assertEqual(response.status_code, 400)
        self.assertEqual(response.json()["error"], "parameters are required")

        # 参数过多
        params = {
            "token": "",
            "url": "",
            "comment_id": 123,
            "extra_param": "extra_value"
        }
        response = requests.get("", params=params)
        self.assertEqual(response.status_code, 400)
        self.assertEqual(response.json()["error"], "invalid parameters")

        # 参数错误
        params = {
            "token": "",
            "url": "",
            "comment_id": "abc"
        }
        response = requests.get("", params=params)
        self.assertEqual(response.status_code, 400)
        self.assertEqual(response.json()["error"], "invalid parameters")

	def test_article_analysis(self):
        # 正向用例
        params = {
            "token": "",
            "url": ""
        }
        response = requests.get("", params=params)
        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.json()["success"], True)

        # token为空
        params = {
            "url": ""
        }
        response = requests.get("", params=params)
        self.assertEqual(response.status_code, 400)
        self.assertEqual(response.json()["error"], "token is required")

        # token错误
        params = {
            "token": "invalid_token",
            "url": ""
        }
        response = requests.get("", params=params)
        self.assertEqual(response.status_code, 401)
        self.assertEqual(response.json()["error"], "invalid token")

        # 参数为空
        response = requests.get("")
        self.assertEqual(response.status_code, 400)
        self.assertEqual(response.json()["error"], "parameters are required")

        # 参数过多
        params = {
            "token": "",
            "url": "",
            "extra_param": "extra_value"
        }
        response = requests.get("", params=params)
        self.assertEqual(response.status_code, 400)
        self.assertEqual(response.json()["error"], "invalid parameters")

        # 参数错误
        params = {
            "token": "",
            "url": ""
        }
        response = requests.get("", params=params)
        self.assertEqual(response.status_code, 400)
        self.assertEqual(response.json()["error"], "invalid parameters")
  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Java高校网络舆情监控系统主要用于监控高校网络平台上的舆情信息,包括学生在社交媒体、微博、论坛等渠道上的言论和互动。该系统利用Java编程语言开发,具备高效、稳定和灵活的特点。 该系统的主要功能包括数据收集、分析和展示。首先,系统通过网络数据抓取技术从高校网络平台上实时收集学生的言论和互动信息。然后,通过自然语言处理技术对收集到的数据进行分析,提取关键词,并通过情感分析等方法对舆情进行评判。最后,将分析结果以可视化的形式展示出来,便于高校管理者和舆情研究人员进行监测和分析。 该系统具有多个优点。首先,它能够快速收集大量的数据,并结合自然语言处理技术进行分析,大大提高了舆情监控的效率和准确性。其次,系统具有良好的扩展性和灵活性,能够根据具体需求进行定制和改进。最后,系统的可视化展示功能使得舆情信息更直观、易懂,帮助高校管理者更好地了解和应对网络舆情事件。 然而,该系统也存在一些挑战。首先,数据的收集和处理需要一定的技术手段和资源投入。其次,由于舆情信息的多样性和复杂性,系统的分析和评判准确性仍需不断提高。最后,虽然系统可以辅助高校管理者监测网络舆情,但在决策时仍需要结合其他因素进行综合考量。 总结而言,Java高校网络舆情监控系统是一个用于监测高校网络舆情的工具。它能够帮助高校管理者快速了解学生的言论和互动情况,及时应对网络舆情事件。随着技术的不断发展和改进,该系统将更加完善和便捷,为高校管理工作提供更有力的支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Epsilon0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值