即时通讯平台项目测试(登录/注册页面)

news2024/10/5 21:52:57

http://8.130.98.211:8080/login.html项目访问地址:即时通讯平台icon-default.png?t=N7T8http://8.130.98.211:8080/login.html

本篇文章进行登录和注册页面的测试。自动化脚本的依赖在文章末尾。

登录页面测试

 UI测试

测试环境:Win11;IntelliJ IDEA 2023.2;Microsoft Edge版本 125.0.2535.51 (正式版本) (64 位)

测试方法:人工测试

测试步骤:

  1. 打开Edge浏览器
  2. 输入 http://8.130.98.211:8080/login.html 点击回车进行访问

预期效果:

实际效果:界面、元素布局正确。

功能测试

测试环境:Win11;IntelliJ IDEA 2023.2;Microsoft Edge版本 125.0.2535.51 (正式版本) (64 位)

测试点:

测试方法:自动化测试

测试数据:{"lisi", "lisi"}、{"lisi", "123"}、{"aaa", "lisi"}、{"adfsa", "1212"}

自动化测试脚本:

public class TestLogin {
    @Test
    public void login() throws InterruptedException {
        String[][] value = {{"lisi", "lisi"},
                {"lisi", "123"},
                {"aaa", "lisi"},
                {"adfsa", "1212"}};
        //预期结果:true、false、false、false
        boolean[] result = new boolean[value.length];
        for (int i = 0; i < value.length; i++) {
            result[i] = testLogin(value[i][0], value[i][1]);
        }
        System.out.println(Arrays.toString(result));
    }
    
    @BeforeAll
    public static void init() {
        System.setProperty("webdriver.edge.driver","C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedgedriver.exe");
    }

    //登录测试
    private boolean testLogin(String name, String password) throws InterruptedException {
        WebDriver webDriver = new EdgeDriver();
        webDriver.get("http://8.130.98.211:8080/login.html");
        //等待页面加载
        webDriver.manage().timeouts().implicitlyWait(4, TimeUnit.SECONDS);
        //检查当前是否处于登录页面
        String logo = webDriver.findElement(By.cssSelector("body > div > div > h3")).getText();
        if (!"登录".equals(logo)) {
            throw new RuntimeException("当前登录页面打开异常");
        }
        //输入账号
        webDriver.findElement(By.cssSelector("#userName")).sendKeys(name);
        //输入密码
        webDriver.findElement(By.cssSelector("#password")).sendKeys(password);
        //进行登录
        webDriver.findElement(By.cssSelector("#submit")).click();
        //先强制等待1秒,然后再隐式等待,防止页面还未跳转就执行后续代码
        Thread.sleep(1000);
        webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
        //获取新页面的url
        try{
            //如果未登录成功会弹窗警告,所以需要处理异常
            String url = webDriver.getCurrentUrl();
            //判断页面是否成功跳转
            return "http://8.130.98.211:8080/client.html".equals(url);
        } catch (UnhandledAlertException e) {
            return false;
        } finally {
            webDriver.close();
        }
    }
}

预期结果:true、false、false、false

实际结果:代码输出结果与预期一致

注册页面测试

UI测试

测试环境:Win11;IntelliJ IDEA 2023.2;Microsoft Edge版本 125.0.2535.51 (正式版本) (64 位)

测试方法:人工测试

测试步骤:

  1. 打开Edge浏览器
  2. 输入 http://8.130.98.211:8080/login.html 点击回车进行访问
  3. 点击注册按钮

预期结果:

实际结果:界面、元素布局正确。

功能测试

测试环境:Win11;IntelliJ IDEA 2023.2;Microsoft Edge版本 125.0.2535.51 (正式版本) (64 位)

测试点:

测试方法:自动化测试

测试脚本:


public class TestLogin {
    @Test
    public void register() throws InterruptedException {
        String[] values = {
                "aaa","123","12asd","as","12","a2","qwertyuiopasdfgh","1234567890123456","123456789012345w",
                "zhangsande","1234567890","qwe1234567",
                "a","1","qweqwwwwwwwqqqqwee","12132234534363623464",
                "qweqwe7dhf7y76647yruh","@uhas()","asds asds","13213  32",
                "@12312334","asd12 ","asd12@","","@(){}","     ","a@",
                "w ","2 ","2@","@#","  ","qwertyuiopasdfg@","qwertyuiopasdfg@","qwertyuiopasdfg ",
                "123456789012345 ", "123456789012345@","12345678901234 w",
                "12 456789012345w","12345678901234$w","*&^%$#@!@#$%^&*&",
                "                ","12345678901234562","oqwertyuiopasdfgh","oqwertyuiopasdfg4",
                "qwe@werewq","qwertyuiop ","123456789 ","123456789@","12345678d ","q12345678@",
                "!@#$%^&*()","          "
        };
        //预期结果:前十二个是true,后面都是false;
        boolean[] result = new boolean[values.length];
        for (int i = 0; i < values.length; i++) {
            int a = i;
            Thread thread = new Thread(()->{
                try {
                    result[a] = testRegister(values[a], "123");
                } catch (InterruptedException e) {
                    throw new RuntimeException(e);
                }
            });
            thread.start();
            if (i % 3 == 2) {
                Thread.sleep(6000);
            }
        }
        Thread.sleep(10000);
        System.out.println(values.length+"个测试用例");
        System.out.println(Arrays.toString(result));
    }

    @BeforeAll
    public static void init() {
        System.setProperty("webdriver.edge.driver","C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedgedriver.exe");
    }

    //判断注册是否成功
    public boolean testRegister(String name, String password) throws InterruptedException {
        WebDriver webDriver = new EdgeDriver();
        webDriver.get("http://8.130.98.211:8080/login.html");
        //点击注册
        webDriver.findElement(By.cssSelector("#submit2")).click();
        webDriver.manage().timeouts().implicitlyWait(4, TimeUnit.SECONDS);
        //判断此时是否处于注册页面
        String logo = webDriver.findElement(By.cssSelector("body > div > div > h3")).getText();
        if (!"注册".equals(logo)) {
            throw new RuntimeException("未跳转到注册页面");
        }
        //输入账号
        webDriver.findElement(By.cssSelector("#userName")).sendKeys(name);
        //输入密码
        webDriver.findElement(By.cssSelector("#password")).sendKeys(password);
        //进行注册操作
        webDriver.findElement(By.cssSelector("#submit")).click();
        Thread.sleep(500);
        //对结果进行判断,并返回结果
        Alert alert = webDriver.switchTo().alert();
        String result = alert.getText();
        //点击确认
        alert.accept();
        Thread.sleep(500);
        boolean flag = "注册成功".equals(result);
        Thread.sleep(300);
        //如果注册成功则判断页面是否跳转至登录界面
        if (flag) {
            logo = webDriver.findElement(By.cssSelector("body > div > div > h3")).getText();
            boolean ret = "登录".equals(logo);
            webDriver.close();
            return ret;
        }
        webDriver.close();
        return false;
    }

}

预期结果:前十二个是true,后面都是false

实际结果:

测试脚本的依赖 

<dependencies>
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>3.141.59</version>
    </dependency>
    <!--截图-->
    <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.11.0</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api -->
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-api</artifactId>
        <version>5.9.1</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-params -->
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-params</artifactId>
        <version>5.9.1</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.junit.platform/junit-platform-suite -->
    <dependency>
        <groupId>org.junit.platform</groupId>
        <artifactId>junit-platform-suite</artifactId>
        <version>1.9.1</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-engine -->
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-engine</artifactId>
        <version>5.9.1</version>
        <scope>test</scope>
    </dependency>
</dependencies>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1904101.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

汇聚荣拼多多电商的技巧有哪些?

在电商平台上&#xff0c;汇聚荣拼多多以其独特的商业模式和创新的营销策略吸引了大量消费者。那么&#xff0c;如何在这样一个竞争激烈的平台上脱颖而出&#xff0c;成为销售佼佼者呢?本文将深入探讨汇聚荣拼多多电商的成功技巧。 一、精准定位目标客户群体 首先&#xff0c;…

CosyVoice多语言、音色和情感控制模型,one-shot零样本语音克隆模型本地部署(Win/Mac),通义实验室开源

近日&#xff0c;阿里通义实验室开源了CosyVoice语音模型&#xff0c;它支持自然语音生成&#xff0c;支持多语言、音色和情感控制&#xff0c;在多语言语音生成、零样本语音生成、跨语言声音合成和指令执行能力方面表现卓越。 CosyVoice采用了总共超15万小时的数据训练&#…

fasttext工具介绍

fastText是由Facebook Research团队于2016年开源的一个词向量计算和文本分类工具。尽管在学术上并未带来巨大创新&#xff0c;但其在实际应用中的表现却非常出色&#xff0c;特别是在文本分类任务中&#xff0c;fastText往往能以浅层网络结构取得与深度网络相媲美的精度&#x…

Git中两个开发分支merge的原理

一 分支合并 1.1 原理 分支合并&#xff1a;就是将A分支修改后且commit的内容&#xff0c;合并到B分支&#xff0c;这些修改且提交的内容和B分支对应的内容和位置进行比较&#xff1a; 1.不一样的话&#xff0c;提示冲突&#xff0c;需要人工干预。 2.一样的话&#xff0c;…

【深入理解JVM】关于Object o = new Object()

1. 解释一下对象的创建过程 “半初始化”状态通常指的是对象在内存分配后、但在完全初始化之前的一种状态。在Java中&#xff0c;虽然JVM的规范和设计努力避免对象处于这种不稳定的状态&#xff0c;但在多线程环境下&#xff0c;由于指令重排序等并发问题&#xff0c;仍有可能…

Arduino ESP8266 开发环境搭建

Arduino ESP8266 开发环境搭建 很久之前学嵌入式时&#xff0c;用过Arduino8266进行开发&#xff0c;开发成本低、难度小&#xff0c;体验很不错。 近期&#xff0c;又突然要用&#xff0c;遂再次搭建环境&#xff0c;但变动挺多&#xff0c;有些小波折&#xff0c;开贴记录。…

【YOLOv9教程】如何使用YOLOv9进行图像与视频检测

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

强化学习中的Double DQN、Dueling DQN和PER DQN算法详解及实战

1. 深度Q网络&#xff08;DQN&#xff09;回顾 DQN通过神经网络近似状态-动作值函数&#xff08;Q函数&#xff09;&#xff0c;在训练过程中使用经验回放&#xff08;Experience Replay&#xff09;和固定目标网络&#xff08;Fixed Target Network&#xff09;来稳定训练过程…

【踩坑】修复pyinstaller报错 No module named pkg_resources.extern

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你&#xff0c;欢迎[点赞、收藏、关注]哦~ 报错如下&#xff1a; 修复方法&#xff1a; pip install --upgrade setuptools pippyinstaller -F -w main.py --hidden-importpkg_resources.py2_wa…

VMware安装centos9详细教程(保姆级)

前言 centos9最新的centos版本&#xff0c;在近期的使用中发现它的操作界面与以往的centos7/8更加舒适&#xff0c;界面优化更加精细 项目终止日期&#xff08;EOL&#xff09; 从公告可知&#xff0c;CentOS 项目重心从 CentOS Linux 转移到了 CentOS Stream。下面是各个项…

Spring的核心概念理解案列

IDEA开发的简单“登陆成功”小项目 IDEA项目结构&#xff1a; 每一部分代码和相应的解读&#xff1a; com.itTony文件下有dao&#xff08;实体&#xff09;层&#xff0c;service&#xff08;服务&#xff09;层&#xff0c;编写的2个类&#xff08;HelloSpring和TestSpring&…

ORA-12170: TNS:连接超时

今天在oracle数据库搭建连接远程数据库的dbink时&#xff0c;发现搭建失败报错&#xff1a;ORA-12170: TNS:连接超时 但是是能够ping的通远程数据库地址的。 telnet 172.18.6.104 1522要求查看下创建dblink语句&#xff0c;也确认创建语句无误。 (DESCRIPTION (ADDRESS_LIST…

使用labelme中的AI多边形(AI-polygon)标注 win版exe Create AI-Polygon闪退

这里写目录标题 虚拟环境创建labelme虚拟环境下载AI标注模型win Labelme.exe Create AI-Polygon闪退问题也用如下方法解决 win Labelme.exe Create AI-Polygon闪退问题也用如下方法解决愉快地使用labelme的AI标注工具 虚拟环境 创建labelme虚拟环境 创建基础环境并激活 cond…

顺序表的介绍

前言 大家好&#xff0c;作者菌又来了&#xff0c;今天我们开始顺序表的学习&#xff0c;今天的内容十分的简单&#xff0c;就是带领大家简单了解顺序表&#xff0c;那好话不多说&#xff0c;直接开始我们今天的正题&#xff01;&#xff01; 1.顺序表的概念和结构 线性表…

驾校管理系统的全面革新与升级

智慧驾校系统是一款专为现代驾校量身定制的综合性管理平台,它深度融合了云计算、大数据、物联网及人工智能等前沿技术,旨在为驾校打造一个高效、智能、便捷的运营生态系统。该系统通过数字化、信息化的手段,彻底革新了传统驾校的管理模式,不仅极大地提升了驾校的运营效率,…

智慧校园-基础平台功能总体概述

智慧校园基础平台是现代教育信息化的核心&#xff0c;它集成了系统管理、基础数据、系统监控、系统工具、流程管理等关键功能&#xff0c;构建了一个全面、智能、安全的校园生态系统。系统管理部分&#xff0c;通过权限管理和用户管理&#xff0c;实现了对用户访问权限的精细化…

【Qt】Qt开发环境搭建

目录 一. Qt SDK的下载&安装 二. Qt相关工具介绍 Qt的常用开发工具有&#xff1a; Qt CreatorVisual StudioEclipse 一. Qt SDK的下载&安装 Qt 下载官网&#xff1a; http://download.qt.io/archive/qt/ 国内清华源: https://mirrors.tuna.tsinghua.edu.cn/qt/arc…

freemarker生成pdf,同时pdf插入页脚,以及数据量大时批量处理

最近公司有个需求&#xff0c;就是想根据一个模板生成一个pdf文档&#xff0c;当即我就想到了freemarker这个远古老东西&#xff0c;毕竟freemarker在模板渲染方面还是非常有优势的。 准备依赖&#xff1a; <dependency><groupId>org.springframework.boot</gr…

【讲解下iOS语言基础】

&#x1f308;个人主页: 程序员不想敲代码啊 &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共…

【论文阅读】-- Visual Traffic Jam Analysis Based on Trajectory Data

基于轨迹数据的可视化交通拥堵分析 摘要1 引言2 相关工作2.1 交通事件检测2.2 交通可视化2.3 传播图可视化 3 概述3.1 设计要求3.2 输入数据说明3.3 交通拥堵数据模型3.4 工作流程 4 预处理4.1 路网处理4.2 GPS数据清理4.3 地图匹配4.4 道路速度计算4.5 交通拥堵检测4.6 传播图…