欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > 开发者社区测试报告(功能测试+性能测试)

开发者社区测试报告(功能测试+性能测试)

2025/3/13 11:19:11 来源:https://blog.csdn.net/2303_77303297/article/details/146076773  浏览:    关键词:开发者社区测试报告(功能测试+性能测试)

功能测试

测试相关用例

开发者社区功能背景

在当今数字化时代,编程已经成为一项核心技能,越来越多的人开始学习编程,以适应快速变化的科技 环境。基于这一需求,我设计开发了一个类似博客的论坛系统,专注于方便程序员与学习编程者之间的交流和 学习,旨在创建一个开放、友好且充满活力的社区。

测试用例思维导图

测试页面

以下是要测试的页面:

页面排版渲染与需求一致,同时按钮能够进行正确点击

登录页面

注册页面

主界面

用户个人信息

帖子详情

短信页面

测试用例

设置了部分基础的测试用例,尽可能的全覆盖,这里只展示部分用例(篇幅有限)

登录界面

  • 正确输入用户名和密码

  • 输入密码为空

注册页面

  • 正确注册

  • 用户名为空

  • 用户已存在

  • 密码为空

个人页面

  • 邮箱修改失败

  • 电话号码失败

  • 密码修改失败

帖子页面

  • 创建帖子失败

  • 回复帖子失败

站内信页面

回复失败

代码编写

基础配置

先进行驱动配置以及截图配置

public class InitUtils {public static WebDriver webDriver ;public static WebDriver createDriver(){if(webDriver==null){System.setProperty("webdriver.chrome.driver", "C:\\学习使我快乐\\测试\\demo\\chromedriver-win64\\chromedriver.exe");ChromeOptions options = new ChromeOptions();options.addArguments("--remote-allow-origins=*");webDriver=new ChromeDriver(options);webDriver.manage().timeouts().implicitlyWait(Duration.ofMillis(5));}return webDriver;}public InitUtils(String url){webDriver = createDriver();webDriver.get(url);}//截图public static void getImage(String str) throws IOException {SimpleDateFormat sim1 = new SimpleDateFormat("yyyy-MM-dd");SimpleDateFormat sim2 = new SimpleDateFormat("HH_mm_ss_SSS");String dirTime = sim1.format(System.currentTimeMillis());String pngTime = sim2.format(System.currentTimeMillis());//名字String fileName = "./src/test/image/"+dirTime+"/"+str+"_"+pngTime+".png";File file = ((TakesScreenshot)webDriver).getScreenshotAs(OutputType.FILE);FileUtils.copyFile(file,new File(fileName));}
}

登录页面

public class LoginPageTest extends InitUtils {public static String url = "http://127.0.0.1:58080/sign-in.html";public LoginPageTest() {super(url);}//登录成功public void LoginSuc() throws InterruptedException, IOException {String str = Thread.currentThread().getStackTrace()[1].getMethodName();//先找到输入框,输入正确的用户名和密码getImage(str);//用方法名进行命名Thread.sleep(2000);webDriver.findElement(By.cssSelector("#username")).sendKeys("小明");webDriver.findElement(By.cssSelector("#password")).sendKeys("123123");webDriver.findElement(By.cssSelector("#submit")).click();Thread.sleep(2000);getImage(str);//webDriver.quit();}//退出登录public void logout() throws IOException {String str = Thread.currentThread().getStackTrace()[1].getMethodName();getImage(str);webDriver.findElement(By.cssSelector("#index_nav_avatar")).click();getImage(str);webDriver.findElement(By.cssSelector("#index_user_logout")).click();getImage(str);//webDriver.quit();}//登录失败public void LoginFail() throws IOException, InterruptedException {String str = Thread.currentThread().getStackTrace()[1].getMethodName();//先找到输入框,输入错误的用户名和密码getImage(str);
//        webDriver.findElement(By.cssSelector("#username")).sendKeys("小明");
//        webDriver.findElement(By.cssSelector("#password")).sendKeys("123456111");webDriver.findElement(By.cssSelector("#username")).sendKeys("");webDriver.findElement(By.cssSelector("#password")).sendKeys("");webDriver.findElement(By.cssSelector("#submit")).click();Thread.sleep(2000);getImage(str);//webDriver.quit();}
}

注册页面

public class RegisterTest extends InitUtils {public static String url = "http://127.0.0.1:58080/sign-up.html";public RegisterTest() {super(url);}//注册成功public void registerSuc() throws IOException, InterruptedException {String str = Thread.currentThread().getStackTrace()[1].getMethodName();getImage(str);Thread.sleep(2000);webDriver.findElement(By.cssSelector("#username")).sendKeys("小喜");webDriver.findElement(By.cssSelector("#nickname")).sendKeys("happiness");webDriver.findElement(By.cssSelector("#password")).sendKeys("123456");webDriver.findElement(By.cssSelector("#passwordRepeat")).sendKeys("123456");webDriver.findElement(By.cssSelector("#policy")).click();Thread.sleep(2000);getImage(str);webDriver.findElement(By.cssSelector("#submit")).click();Thread.sleep(2000);getImage(str);//webDriver.quit();}//注册失败public void fail() throws IOException, InterruptedException {String str = Thread.currentThread().getStackTrace()[1].getMethodName();getImage(str);//webDriver.findElement(By.cssSelector("#username")).sendKeys("");//用户名为空//webDriver.findElement(By.cssSelector("#username")).sendKeys("小明");//用户名重复webDriver.findElement(By.cssSelector("#username")).sendKeys("明明");webDriver.findElement(By.cssSelector("#nickname")).sendKeys("mingming");//webDriver.findElement(By.cssSelector("#password")).sendKeys("");//密码为空//webDriver.findElement(By.cssSelector("#password")).sendKeys("123");//密码小于6位webDriver.findElement(By.cssSelector("#password")).sendKeys("123456");//webDriver.findElement(By.cssSelector("#passwordRepeat")).sendKeys("123");//两次密码输入不一样webDriver.findElement(By.cssSelector("#passwordRepeat")).sendKeys("123456");//不点击同意信息//webDriver.findElement(By.cssSelector("#policy")).click();Thread.sleep(2000);getImage(str);webDriver.findElement(By.cssSelector("#submit")).click();Thread.sleep(2000);getImage(str);}
}

帖子页面

public class ListPageTest extends InitUtils {public static String url = "http://127.0.0.1:58080/index.html";public ListPageTest() {super(url);}//点击帖子public void listDetail() throws IOException {String str = Thread.currentThread().getStackTrace()[1].getMethodName();getImage(str);webDriver.findElement(By.cssSelector("#artical-items-body > div:nth-child(1) > div > div.col > div.text-truncate > a > strong")).click();//因为是外部的文件 MD输入,所以一般是找不到的webDriver.findElement(By.cssSelector("#article_details_reply > div.CodeMirror.cm-s-default.CodeMirror-wrap.CodeMirror-empty > div.CodeMirror-scroll")).sendKeys("这是自动化测试内容");getImage(str);webDriver.findElement(By.cssSelector("#details_btn_article_reply")).click();getImage(str);//webDriver.quit();}//点击板块public void listBoard() throws IOException, InterruptedException {String str = Thread.currentThread().getStackTrace()[1].getMethodName();getImage(str);webDriver.findElement(By.cssSelector("#topBoardList > li:nth-child(5) > a > span.nav-link-title")).click();Thread.sleep(2000);getImage(str);webDriver.findElement(By.cssSelector("#topBoardList > li:nth-child(8) > a > span.nav-link-title")).click();Thread.sleep(2000);getImage(str);webDriver.quit();}//发布新帖子public void createNewText() throws IOException, InterruptedException{String str = Thread.currentThread().getStackTrace()[1].getMethodName();webDriver.findElement(By.cssSelector("#bit-forum-content > div.page-header.d-print-none > div > div > div.col-auto.ms-auto.d-print-none > div > a.btn.btn-primary.d-none.d-sm-inline-block.article_post")).click();getImage(str);webDriver.findElement(By.cssSelector("#article_post_borad > option:nth-child(6)")).click();//选择板块webDriver.findElement(By.cssSelector("#article_post_title")).sendKeys("自动化测试");Thread.sleep(2000);webDriver.findElement(By.cssSelector("#edit-article > div.CodeMirror.cm-s-default.CodeMirror-wrap.CodeMirror-empty > div.CodeMirror-scroll")).sendKeys("自动化测试内容");Thread.sleep(2000);getImage(str);webDriver.findElement(By.cssSelector("#article_post_submit")).click();Thread.sleep(2000);getImage(str);webDriver.quit();}
}

用户页面

public class UserTest extends InitUtils {//用户有两个页面,所以需要进行跳转public static String url="http://127.0.0.1:58080/index.html";public UserTest() {super(url);}//获取当前用户帖子public void myText() throws InterruptedException, IOException {String str = Thread.currentThread().getStackTrace()[1].getMethodName();getImage(str);Thread.sleep(2000);webDriver.findElement(By.cssSelector("#index_nav_avatar")).click();webDriver.findElement(By.cssSelector("#index_user_profile")).click();Thread.sleep(2000);getImage(str);//点击帖子webDriver.findElement(By.cssSelector("#profile_article_body > li > div.card.timeline-event-card > div > div > div > div > div.text-truncate > a > strong")).click();getImage(str);webDriver.quit();}//修改个人信息成功public void updateInfoSuc() throws IOException, InterruptedException {String str = Thread.currentThread().getStackTrace()[1].getMethodName();getImage(str);Thread.sleep(2000);webDriver.findElement(By.cssSelector("#index_nav_avatar")).click();webDriver.findElement(By.cssSelector("#index_user_settings")).click();Thread.sleep(2000);//修改个人信息//修改之前要先清空//修改头像webDriver.findElement(By.cssSelector("#bit-forum-content > div.page-body > div > div > div > div.col.d-flex.flex-column > div > div.row.align-items-center > div:nth-child(2) > a")).sendKeys("C:\\Users\\asus\\Desktop\\证件照压缩版.jpg");//修改昵称
//        webDriver.findElement(By.cssSelector("#setting_input_nickname")).clear();
//        webDriver.findElement(By.cssSelector("#setting_input_nickname")).sendKeys("NickName");
//        Thread.sleep(2000);
//        webDriver.findElement(By.cssSelector("#setting_submit_nickname")).click();
//
//        //修改邮箱
//        webDriver.findElement(By.cssSelector("#setting_input_email")).clear();
//        webDriver.findElement(By.cssSelector("#setting_input_email")).sendKeys("qweqwe123@qq.com");
//        Thread.sleep(2000);
//        webDriver.findElement(By.cssSelector("#setting_submit_email")).click();
//
//        //修改电话号码
//        webDriver.findElement(By.cssSelector("#setting_input_phoneNum")).clear();
//        webDriver.findElement(By.cssSelector("#setting_input_phoneNum")).sendKeys("15136698733");
//        Thread.sleep(2000);
//        webDriver.findElement(By.cssSelector("#setting_submit_phoneNum")).click();
//
//        //修改密码
//        webDriver.findElement(By.cssSelector("#settings_input_oldPassword")).sendKeys("123123");
//        webDriver.findElement(By.cssSelector("#settings_input_newPassword")).sendKeys("1123456");
//        webDriver.findElement(By.cssSelector("#settings_input_passwordRepeat")).sendKeys("123456");
//        webDriver.findElement(By.cssSelector("#settings_submit_password")).click();
//
//        //修改个人简介
//        webDriver.findElement(By.cssSelector("#settings_textarea_remark")).clear();
//        webDriver.findElement(By.cssSelector("#settings_textarea_remark")).sendKeys("这是自动化测试");
//        Thread.sleep(2000);
//        webDriver.findElement(By.cssSelector("#settings_submit_remark")).click();Thread.sleep(2000);getImage(str);Thread.sleep(2000);webDriver.quit();}//修改个人信息失败public void updateInfoFail()throws IOException, InterruptedException{String str = Thread.currentThread().getStackTrace()[1].getMethodName();getImage(str);Thread.sleep(2000);webDriver.findElement(By.cssSelector("#index_nav_avatar")).click();webDriver.findElement(By.cssSelector("#index_user_settings")).click();Thread.sleep(2000);//修改个人信息//修改邮箱
//        webDriver.findElement(By.cssSelector("#setting_input_email")).clear();
//        webDriver.findElement(By.cssSelector("#setting_input_email")).sendKeys("qweqwe123");
//        Thread.sleep(2000);
//        webDriver.findElement(By.cssSelector("#setting_submit_email")).click();
//        getImage(str);//        //修改电话号码
//        webDriver.findElement(By.cssSelector("#setting_input_phoneNum")).clear();
//        webDriver.findElement(By.cssSelector("#setting_input_phoneNum")).sendKeys("15136698");
//        Thread.sleep(2000);
//        webDriver.findElement(By.cssSelector("#setting_submit_phoneNum")).click();
//        getImage(str);//修改密码
//        webDriver.findElement(By.cssSelector("#settings_input_oldPassword")).sendKeys("123123");
//        webDriver.findElement(By.cssSelector("#settings_input_newPassword")).sendKeys("1123456");//前后密码不一致
//        webDriver.findElement(By.cssSelector("#settings_input_passwordRepeat")).sendKeys("123456");
//        webDriver.findElement(By.cssSelector("#settings_input_oldPassword")).sendKeys("");//没有输入旧密码
//        webDriver.findElement(By.cssSelector("#settings_input_newPassword")).sendKeys("123456");
//        webDriver.findElement(By.cssSelector("#settings_input_passwordRepeat")).sendKeys("123456");webDriver.findElement(By.cssSelector("#settings_input_oldPassword")).sendKeys("123123");webDriver.findElement(By.cssSelector("#settings_input_newPassword")).sendKeys("123456");webDriver.findElement(By.cssSelector("#settings_input_passwordRepeat")).sendKeys("");//没有输入确认密码Thread.sleep(2000);webDriver.findElement(By.cssSelector("#settings_submit_password")).click();Thread.sleep(1000);getImage(str);webDriver.quit();}
}

短信页面

public class MessageTest extends InitUtils {public static String url = "http://127.0.0.1:58080/index.html";public MessageTest() {super(url);}//打开站内信板块,点击站内信public void getMessage() throws InterruptedException, IOException {String str = Thread.currentThread().getStackTrace()[1].getMethodName();webDriver.findElement(By.cssSelector("body > div.page > header.navbar.navbar-expand-md.navbar-light.d-print-none > div > div > div:nth-child(2) > div > a > svg")).click();Thread.sleep(2000);getImage(str);webDriver.findElement(By.cssSelector("#index_div_message_list > div:nth-child(1) > div > div.col.text-truncate > a > span:nth-child(2)")).click();Thread.sleep(2000);getImage(str);//webDriver.quit();}//回复站内信public void responseMsg()throws InterruptedException, IOException{String str = Thread.currentThread().getStackTrace()[1].getMethodName();webDriver.findElement(By.cssSelector("#btn_index_message_reply")).click();Thread.sleep(2000);getImage(str);webDriver.findElement(By.cssSelector("#index_message_reply_receive_content")).sendKeys("用来测试一下");Thread.sleep(2000);getImage(str);webDriver.findElement(By.cssSelector("#btn_index_send_message_reply")).click();Thread.sleep(2000);getImage(str);webDriver.quit();}
}

性能测试

对部分接口进行了性能测试,设置了600个线程

总结

  • 总体性能

    • 总请求数为6000,所有请求均成功执行,错误率为0.00%。

    • 平均响应时间为5.20毫秒,最小响应时间为0毫秒,最大响应时间为133毫秒。

    • 网络吞吐量为512.30 KiB/s,接收数据量为4521.95 KiB,发送数据量为113.35 KiB。

  • 各请求类型的性能

    • 发起帖子:平均响应时间为10.06毫秒,最大响应时间为32毫秒。

    • 点赞帖子:平均响应时间为5.10毫秒,最大响应时间为13毫秒。

    • 登出:平均响应时间为1.06毫秒,是所有请求中最快的。

    • 登录:平均响应时间为2.83毫秒,最大响应时间为36毫秒。

    • 获取帖子内容:平均响应时间为32.46毫秒,是所有请求中最慢的,最大响应时间为63毫秒。

    • 获取帖子详情:平均响应时间为5.24毫秒,最大响应时间为31毫秒。

    • 获取板块:平均响应时间为2.47毫秒,最大响应时间为8毫秒。

    • 获取用户帖子:平均响应时间为16.25毫秒,最大响应时间为44毫秒。

    • 获取用户详情:平均响应时间为1.17毫秒,最大响应时间为6毫秒。

    • 获取短信内容获取站内信列表:平均响应时间均为4.44毫秒,最大响应时间为133毫秒。

    • 获取站内:平均响应时间为3.39毫秒,最大响应时间为14毫秒。

  • APDEX指数

    • 所有请求的APDEX指数均为1.000,表示所有请求的响应时间都在用户可接受的范围内(容忍阈值500毫秒,沮丧阈值1.5秒)。

  • 网络使用情况

    • 接收数据量最大的是“获取帖子内容”和“获取用户帖子”,分别为4450.46 KiB和4290.84 KiB。

    • 发送数据量最大的是“发起帖子”和“登录”,分别为21.53 KiB和15.27 KiB。

  • 结论

    • 系统整体性能良好,所有请求的响应时间都在可接受范围内,且没有错误发生。

    • “获取帖子内容”和“获取用户帖子”是系统中响应时间较长的操作,可能需要进一步优化。

    • 网络吞吐量和数据传输量在合理范围内,没有明显的瓶颈。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com