企业跨组织人才管理系统测试

测试用例

1691747753871.png

image.png
image.png

测试环境:

操作系统:Windows 10家庭版
项目运行:IDEA2022.2.3、maven、JDK1.8
浏览器:Chorme、Edge、FireFox
自动化脚本环境:IDEA2022.2.3
网络:127.0.0.1:8080
测试技术: 主要采用自动化测试以及手工测试
测试人员: 我

测试的开发与执行

对登陆、注册页面进行的测试

场景1:输入账号和密码可以正常登录,进行页面的跳转
预期结果:页面实现正常跳转
实际结果:页面正常跳转,与预期结果相符

@Order(1)
    @ParameterizedTest
    @CsvSource(value = "admin, 123456")
    void Login(String username, String password) {
    
    
        // 打开登录页面
        webDriver.get("http://47.115.221.152:8080/Management_System-1.0-SNAPSHOT/login.html");
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        // 输入用户名
        webDriver.findElement(By.cssSelector("#username")).sendKeys(username);
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        // 输入密码
        webDriver.findElement(By.cssSelector("#password")).sendKeys(password);
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        webDriver.findElement(By.cssSelector("body > div.login-container > div > div:nth-child(4) > input[type=radio]:nth-child(2)")).click();
        // 点击提交
        webDriver.findElement(By.cssSelector("#submit")).click();
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        // 校验当前登录的用户是不是admin,如果是admin测试通过,否则测试不通过
        String user_name = webDriver.findElement(By.cssSelector("body > div.content > div.content-right > div.new > div.one > table > tr:nth-child(2) > td:nth-child(2)")).getText();
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        System.out.println(user_name);
        Assertions.assertEquals(username, user_name);
    }

场景2:输入错误的账号和密码,登录失败,提示请先输入正确的账号密码
预期结果:页面跳转,但不显示任何信息
实际结果:浏览器提示请先输入正确的账号密码,与预期结果相同
本场景与上面代码相似,不做展示

对公司员工页面进行测试

//    公司员工
    @Order(2)
    @Test
    void ComEmp() throws InterruptedException {
    
    
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        webDriver.findElement(By.cssSelector("body > div.content > div.content-left > div.nav > div > div:nth-child(2) > a")).click();
        // 校验当前页面是否跳转到在职员工页面
        String cur_url = webDriver.getCurrentUrl();
        Assertions.assertEquals("http://47.115.221.152:8080/Management_System-1.0-SNAPSHOT/comEmpInfo.html", cur_url);
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        //查询
        webDriver.findElement(By.cssSelector("body > div.content > div.content-right > div > div > input.serch")).sendKeys("龙云飞");
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        webDriver.findElement(By.cssSelector("#button")).click();
        webDriver.findElement(By.xpath("/html/body/div[1]/div[2]/div/div/input[2]")).click();
        sleep(3000);
        String name = webDriver.findElement(By.cssSelector("body > div.content > div.content-right > div > table > tbody > tr:nth-child(2) > td:nth-child(2)")).getText();
        webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        Assertions.assertEquals("龙云飞",name);

        //全部信息
        webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
        webDriver.findElement(By.cssSelector("#allEmpInfo > a")).click();

//        添加
        sleep(3000);
        webDriver.findElement(By.cssSelector("#publish")).click();
        webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
        webDriver.findElement(By.cssSelector("#usrename")).sendKeys("张振中");
        webDriver.findElement(By.cssSelector("#sex")).sendKeys("男");
        webDriver.findElement(By.cssSelector("#age")).sendKeys("23");
        webDriver.findElement(By.cssSelector("#position")).sendKeys("部门主管");
        webDriver.findElement(By.cssSelector("#phone")).sendKeys("16545252652");
        webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
        webDriver.findElement(By.cssSelector("body > div.modal > table > tbody > tr:nth-child(7) > td:nth-child(1) > input[type=button]")).click();

        //删除
        sleep(3000);
        webDriver.findElement(By.cssSelector("body > div.content > div.content-right > div > table > tbody > tr:nth-child(6) > td:nth-child(8) > input")).click();
        webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
        webDriver.switchTo().alert().accept();

    }

对发布招聘页面进行测试

//    发布招聘
    @Order(3)
    @Test
    void comPublish() throws InterruptedException {
    
    
        webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
        webDriver.findElement(By.cssSelector("body > div.content > div.content-left > div.nav > div > div:nth-child(4) > a")).click();
        webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);

        //查询
//        bug
//        webDriver.findElement(By.cssSelector("#institutionId")).sendKeys("前端开发工程师");
//        webDriver.findElement(By.xpath("/html/body/div[1]/div[2]/div/div/input[1]")).sendKeys("前端开发工程师");
//        webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
//        webDriver.findElement(By.cssSelector("#button")).click();
//        webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
//        String position = webDriver.findElement(By.cssSelector("body > div.content > div.content-right > div > table > tr:nth-child(2) > td:nth-child(3)")).getText();
//        webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
//        Assertions.assertEquals("前端开发工程师",position);

        //全部信息
        sleep(3000);
//        webDriver.switchTo().alert().accept();
//        webDriver.findElement(By.cssSelector("#allPulish > a")).click();
        webDriver.findElement(By.xpath("/html/body/div[1]/div[2]/div/div/button/a")).click();

        sleep(3000);
        //添加
        webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
//        webDriver.findElement(By.cssSelector("#publish")).click();
        webDriver.findElement(By.xpath("/html/body/div[1]/div[2]/div/div/input[3]")).click();
        webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
        webDriver.findElement(By.cssSelector("#position")).sendKeys("全栈开发");
        webDriver.findElement(By.xpath("/html/body/div[2]/table/tbody/tr[2]/td[2]/input")).sendKeys("西安");
        webDriver.findElement(By.xpath("/html/body/div[2]/table/tbody/tr[3]/td[2]/input")).sendKeys("本科");
        webDriver.findElement(By.xpath("/html/body/div[2]/table/tbody/tr[4]/td[2]/input")).sendKeys("无");
        webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
//        webDriver.findElement(By.cssSelector("body > div.modal > table > tbody > tr:nth-child(5) > td:nth-child(1) > input[type=submit]")).click();
        webDriver.findElement(By.xpath("/html/body/div[2]/table/tbody/tr[5]/td[1]/input")).click();
        webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
        webDriver.switchTo().alert().accept();

        //删除
        sleep(3000);
        webDriver.findElement(By.cssSelector("body > div.content > div.content-right > div > table > tbody > tr:nth-child(5) > td:nth-child(7) > input")).click();
        webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
//        webDriver.switchTo().alert().accept();
    }

对发现人才页面进行测试

//    发现人才
    @Order(4)
    @Test
    void comFind() throws InterruptedException {
    
    
        //查询
        webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
        webDriver.findElement(By.cssSelector("body > div.content > div.content-left > div.nav > div > div:nth-child(5) > a")).click();
        webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
        webDriver.findElement(By.cssSelector("#institutionId")).sendKeys("后端开发工程师");
        webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
        webDriver.findElement(By.cssSelector("#submit")).click();

        //查看全部
        sleep(3000);
        webDriver.findElement(By.cssSelector("#allFind > a")).click();

        //查看档案
        webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
        webDriver.findElement(By.cssSelector("body > div > div.content-right > div > table > tbody:nth-child(2) > tr > td:nth-child(8) > button > a")).click();
        sleep(3000);
        webDriver.findElement(By.cssSelector("#ret > a")).click();

        //审核通过
        webDriver.findElement(By.cssSelector("body > div > div.content-right > div > table > tbody:nth-child(2) > tr > td:nth-child(10) > input[type=radio]:nth-child(2)")).click();
        webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
        webDriver.findElement(By.cssSelector("body > div > div.content-right > div > table > tbody:nth-child(2) > tr > td:nth-child(10) > button")).click();
        sleep(1000);
        webDriver.switchTo().alert().accept();
        webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
        String flag = webDriver.findElement(By.cssSelector("body > div > div.content-right > div > table > tbody:nth-child(2) > tr > td:nth-child(9)")).getText();
        Assertions.assertEquals("审核通过",flag);
    }

对评价记录页面进行测试

//评价记录
    @Order(5)
    @Test
    void comEva() throws InterruptedException {
    
    
        //查询
        webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
        webDriver.findElement(By.cssSelector("body > div > div.content-left > div.nav > div > div:nth-child(3) > a")).click();
        webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
        webDriver.findElement(By.cssSelector("#institutionId")).sendKeys("龙云飞");
        webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
        webDriver.findElement(By.cssSelector("#button")).click();
        sleep(3000);

        //全部信息
        webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
        webDriver.findElement(By.cssSelector("#all")).click();

        //添加
        webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
        webDriver.findElement(By.cssSelector("#publish")).click();
        webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
        webDriver.findElement(By.cssSelector("#userName")).sendKeys("王武");
//        webDriver.findElement(By.xpath("/html/body/div[2]/div/table/tbody/tr[1]/td[2]/input")).sendKeys("王武");
        webDriver.findElement(By.cssSelector("#section")).sendKeys("普通员工");
        webDriver.findElement(By.cssSelector("#attitude")).sendKeys("良好");
        webDriver.findElement(By.cssSelector("#ability")).sendKeys("能力强");
        webDriver.findElement(By.cssSelector("#work_result")).sendKeys("成果突出");
        webDriver.findElement(By.cssSelector("#evaluate")).sendKeys("态度认真");
        webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
        webDriver.findElement(By.cssSelector("body > div.modal > div > table > tbody > tr:nth-child(8) > td:nth-child(1) > input[type=button]")).click();
        webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);


        //删除
        sleep(3000);
        webDriver.findElement(By.cssSelector("body > div.content > div.content-right > div > table > tbody > tr:nth-child(3) > td:nth-child(8) > input")).click();
        webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
        webDriver.switchTo().alert().accept();
        webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);


    }

测试出未解决的一些bug

管理员端(未测试)
只实现了查询功能

个人端
查看档案功能未实现
发布求职:查询城市时,查询到不属于自己发布的求职信息
新注册员工无法使用(员工信息,员工信息修改,新增求职信息)

企业端
发布招聘查询只能查询到测试工程师的招聘信息
查看人才搜索意向岗位只能搜索出一条求职信息

测试出已解决的一些bug

每个模块集中到一起之后,部分功能无法实现,比如企业端添加一个新员工时,点击确定按钮无法提交数据。
原因:使用了form表单,可能是电脑性能好的后端能收到数据,我的电脑测试时就没能添加成功;
正确:使用div
企业端删除一条员工评价时,会删除当天所有关于这个员工的评价,
原因:前端定位使用了name和date去定位,导致所有同一个员工的同一天的评价记录都会被删除
正确:使用id去定位具体的一条信息
当企业端添加一名员工时,个人端仍能正常发布求职
原因:没有修改个人状态信息,只是简单的在表里添加了一条记录
正确:不仅要在员工表添加员工,同时也要将这个员工标记为在职员工。
最后做测试时,添加一条员工记录,无法提交成功,控制台报500错误,后端number为空的错误
原因:开发人员最后发过来的sql文件中的id没有设置为自增,写JDBC编程时又没有将id写上,因此添加一条记录没有成功。
正确:将数据库中的id设置为自增。

测试过程中的一些难点

(1)计划经验不足,无类似的项目参考
(2)前期开发进度延迟,导致测试时间被压缩
(3)测试前期投入不够积极,BUG在后期呈现更多,导致测试后期测试任务堆积
(4)开发质量不理想,导致后期修复过程中不断引入新的问题,甚至更严重的问题
(5)测试计划做的不够充分合理,导致预估的测试时间不够充足
(6)开发新的模块(开发觉得简单,但是做的过程越做越复杂且涉及到多个表之间集合,交互给测试时间又很延时),导致测试过程很仓促
具体:
驱动器与浏览器版本不对应
解决:重新安装对应版本的驱动或者浏览器(我的选择)
使用css选择器无法定位到某些具体元素。
解决:使用xpath。
响应时间过长,导致页面还没渲染出来就往下执行了
解决:

sleep(3000);
webDriver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);

confirm窗口无法点击确认
网上说使用webDriver.switchTo().alert().accept();
但是我的测试中使用没用。

功能测试代码:
https://gitee.com/dragon-yushuang/Management_System_Test.git

企业跨组织人才管理系统后端

每个模块集中到一起之后,部分功能无法实现,比如企业端添加一个新员工时,点击确定按钮无法提交数据。
原因:使用了form表单,可能是电脑性能好的后端能收到数据,我的电脑测试时就没能添加成功;
正确:使用div

企业端删除一条员工评价时,会删除当天所有关于这个员工的评价,
原因:前端定位使用了name和date去定位,导致所有同一个员工的同一天的评价记录都会被删除
正确:使用id去定位具体的一条信息

当企业端添加一名员工时,个人端仍能正常发布求职
原因:没有修改个人状态信息,只是简单的在表里添加了一条记录
正确:不仅要在员工表添加员工,同时也要将这个员工标记为在职员工。

最后做测试时,添加一条员工记录,无法提交成功,控制台报500错误,后端number为空的错误
原因:开发人员最后发过来的sql文件中的id没有设置为自增,写JDBC编程时又没有将id写上,因此添加一条记录没有成功。
正确:将数据库中的id设置为自增。

猜你喜欢

转载自blog.csdn.net/qq_53869058/article/details/132345127