听完米课做的网站,湖南企业建站系统费用,wordpress主题换图片不显示不出来,网站建设整体情况介绍功能测试
测试相关用例
开发者社区功能背景 在当今数字化时代#xff0c;编程已经成为一项核心技能#xff0c;越来越多的人开始学习编程#xff0c;以适应快速变化的科技 环境。基于这一需求#xff0c;我设计开发了一个类似博客的论坛系统#xff0c;专注于方便程序员…功能测试
测试相关用例
开发者社区功能背景 在当今数字化时代编程已经成为一项核心技能越来越多的人开始学习编程以适应快速变化的科技 环境。基于这一需求我设计开发了一个类似博客的论坛系统专注于方便程序员与学习编程者之间的交流和 学习旨在创建一个开放、友好且充满活力的社区。 测试用例思维导图 测试页面
以下是要测试的页面:
页面排版渲染与需求一致,同时按钮能够进行正确点击
登录页面 注册页面 主界面 用户个人信息 帖子详情 短信页面 测试用例
设置了部分基础的测试用例,尽可能的全覆盖,这里只展示部分用例(篇幅有限)
登录界面 正确输入用户名和密码 输入密码为空 注册页面 正确注册 用户名为空 用户已存在 密码为空 个人页面 邮箱修改失败 电话号码失败 密码修改失败 帖子页面 创建帖子失败 回复帖子失败 站内信页面
回复失败 代码编写
基础配置
先进行驱动配置以及截图配置
public class InitUtils {public static WebDriver webDriver ;public static WebDriver createDriver(){if(webDrivernull){System.setProperty(webdriver.chrome.driver, C:\\学习使我快乐\\测试\\demo\\chromedriver-win64\\chromedriver.exe);ChromeOptions options new ChromeOptions();options.addArguments(--remote-allow-origins*);webDrivernew 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 urlhttp://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(qweqwe123qq.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。 结论 系统整体性能良好所有请求的响应时间都在可接受范围内且没有错误发生。 “获取帖子内容”和“获取用户帖子”是系统中响应时间较长的操作可能需要进一步优化。 网络吞吐量和数据传输量在合理范围内没有明显的瓶颈。