在线网盘的测试

1.系统介绍

        在我上一篇文章中展示了一个在线网盘的功能介绍以及实现细节,不了解的可以直接到网盘在线地址体验,文章的资料在GitHub - retire-at-35/myyundrive: 简单云盘,这篇文章主要讲述对这个项目的测试过程。

2.功能测试

        在功能测试中我使用了xmind和excel来实现测试用例的提取以及编写,部分测试用例的内容如下(图片和表格过多无法全部展示):

.....

用例编号用例标题项目 / 模块优先级前置条件测试步骤测试数据预期结果实际结果
网盘系统注册功能P0打开网盘系统注册页面1. 在昵称输入框输入数据;2. 其他输入框输入有效数据;3. 点击注册按钮。昵称:"a"注册成功,跳转到登录页通过
网盘系统注册功能P0打开网盘系统注册页面1. 在昵称输入框输入数据;2. 其他输入框输入有效数据;3. 点击注册按钮。昵称:"abcdef"注册成功,跳转到登录页通过
网盘系统注册功能P0打开网盘系统注册页面1. 在昵称输入框输入数据;2. 其他输入框输入有效数据;3. 点击注册按钮。昵称:"abc"注册成功,跳转到登录页通过
网盘系统注册功能P0打开网盘系统注册页面1. 在昵称输入框输入数据;2. 其他输入框输入有效数据;3. 点击注册按钮。昵称:""提示 “昵称不能为空”,注册失败,页面保持在注册页通过
网盘系统注册功能P0打开网盘系统注册页面1. 在昵称输入框输入数据;2. 其他输入框输入有效数据;3. 点击注册按钮。昵称:"abcdefg"提示 “昵称长度不能超过 6 位”,注册失败,页面保持在注册页通过
网盘系统注册功能P0打开网盘系统注册页面1. 在昵称输入框输入数据;2. 其他输入框输入有效数据;3. 点击注册按钮。昵称:"a@"提示 “昵称包含非法字符”,注册失败,页面保持在注册页通过
网盘系统注册功能P0打开网盘系统注册页面1. +A8在邮箱号输入框输入数据;2. 点击发送邮箱按钮。邮箱号:"test@example.com"注册流程可继续,发送邮箱按钮可点击,按钮变为不可点击状态,显示倒计时,系统发送验证邮件到输入的邮箱通过
网盘系统注册功能P0打开网盘系统注册页面1. 在邮箱号输入框输入数据;2. 点击发送邮箱按钮。邮箱号:""提示 “邮箱不能为空”,发送邮箱按钮不可点击,注册失败,页面保持在注册页通过
网盘系统注册功能P0打开网盘系统注册页面1. 在邮箱号输入框输入数据;2. 点击发送邮箱按钮。邮箱号:"testexample.com"提示 “请输入有效的邮箱地址”,发送邮箱按钮不可点击,注册失败,页面保持在注册页通过
网盘系统注册功能P0打开网盘系统注册页面1. 在邮箱号输入框输入数据;2. 点击发送邮箱按钮。邮箱号:"test@"提示 “请输入有效的邮箱地址”,发送邮箱按钮不可点击,注册失败,页面保持在注册页通过
网盘系统注册功能P0打开网盘系统注册页面1. 在邮箱号输入框输入数据;2. 点击发送邮箱按钮。邮箱号:test@example.com提示:邮箱账号已经存在通过
网盘系统注册功能P0打开网盘系统注册页面,已发送邮箱验证码1. 在邮箱验证码输入框输入数据;2. 其他输入框输入有效数据;3. 点击注册按钮。邮箱验证码:"123456"注册流程可继续通过
网盘系统注册功能P0打开网盘系统注册页面,已发送邮箱验证码1. 在邮箱验证码输入框输入数据;2. 其他输入框输入有效数据;3. 点击注册按钮。邮箱验证码:""提示 “邮箱验证码不能为空”,注册失败,页面保持在注册页通过
网盘系统注册功能P0打开网盘系统注册页面,已发送邮箱验证码1. 在邮箱验证码输入框输入数据;2. 其他输入框输入有效数据;3. 点击注册按钮。邮箱验证码:"654321"提示 “邮箱验证码错误”,注册失败,页面保持在注册页通过
网盘系统注册功能P0打开网盘系统注册页面1. 在密码输入框输入数据;2. 其他输入框输入有效数据;3. 点击注册按钮。密码:"abc123!@"注册流程可继续通过
网盘系统注册功能P0打开网盘系统注册页面1. 在密码输入框输入数据;2. 其他输入框输入有效数据;3. 点击注册按钮。密码:"abcdef123456!@#$%^"注册流程可继续通过
网盘系统注册功能P0打开网盘系统注册页面1. 在密码输入框输入数据;2. 其他输入框输入有效数据;3. 点击注册按钮。密码:"abc123!@def456"注册流程可继续通过
网盘系统注册功能P0打开网盘系统注册页面1. 在密码输入框输入数据;2. 其他输入框输入有效数据;3. 点击注册按钮。密码:""提示 “密码不能为空”,注册失败,页面保持在注册页通过
网盘系统注册功能P0打开网盘系统注册页面1. 在密码输入框输入数据;2. 其他输入框输入有效数据;3. 点击注册按钮。密码:"abc123!"提示 “密码长度不能少于 8 位”,注册失败,页面保持在注册页通过
网盘系统注册功能P0打开网盘系统注册页面1. 在密码输入框输入数据;2. 其他输入框输入有效数据;3. 点击注册按钮。密码:"abcdef123456!@#$%^&"提示 “密码长度不能超过 18 位”,注册失败,页面保持在注册页通过
网盘系统注册功能P0打开网盘系统注册页面1. 在密码输入框输入数据;2. 其他输入框输入有效数据;3. 点击注册按钮。密码:"abcdefgh!@"提示 “密码必须包含数字、字母和特殊字符”,注册失败,页面保持在注册页通过
网盘系统注册功能P0打开网盘系统注册页面1. 在密码输入框输入数据;2. 其他输入框输入有效数据;3. 点击注册按钮。密码:"12345678!@"提示 “密码必须包含数字、字母和特殊字符”,注册失败,页面保持在注册页通过
网盘系统注册功能P0打开网盘系统注册页面1. 在密码输入框输入数据;2. 其他输入框输入有效数据;3. 点击注册按钮。密码:"abc12345"提示 “密码必须包含数字、字母和特殊字符”,注册失败,页面保持在注册页通过
网盘系统注册功能P0打开网盘系统注册页面1. 设置密码;2. 在确认密码输入框输入数据;3. 其他输入框输入有效数据;4. 点击注册按钮。密码:"abc123!@",确认密码:"abc123!@"注册流程可继续通过
网盘系统注册功能P0打开网盘系统注册页面1. 设置密码;2. 在确认密码输入框输入数据;3. 其他输入框输入有效数据;4. 点击注册按钮。密码:"abc123!@",确认密码:"def456#$"提示 “确认密码与密码不一致”,注册失败,页面保持在注册页通过
网盘系统注册功能P0打开网盘系统注册页面1. 在验证码输入框输入数据;2. 其他输入框输入有效数据;3. 点击注册按钮。验证码:"ABCD"注册流程可继续通过
网盘系统注册功能P0打开网盘系统注册页面1. 在验证码输入框输入数据;2. 其他输入框输入有效数据;3. 点击注册按钮。验证码:""提示 “验证码不能为空”,注册失败,页面保持在注册页通过
网盘系统注册功能P0打开网盘系统注册页面1. 在验证码输入框输入数据;2. 其他输入框输入有效数据;3. 点击注册按钮。验证码:"DCBA"提示 “验证码错误”,注册失败,页面保持在注册页通过
网盘系统注册功能P0打开网盘系统注册页面1. 在邮箱号输入框输入数据;2. 点击发送邮箱按钮。邮箱号:"test@example.com"按钮变为不可点击状态,显示倒计时,系统发送验证邮件到输入的邮箱通过
网盘系统注册功能P0打开网盘系统注册页面1. 在邮箱号输入框输入数据;2. 点击发送邮箱按钮。邮箱号:"testexample.com"提示 “请输入有效的邮箱地址”,按钮保持可点击状态通过
网盘系统注册功能P0打开网盘系统注册页面点击验证码切换按钮验证码图片更新为新的验证码通过
网盘系统注册功能P0打开网盘系统注册页面点击切换回登录界面按钮页面跳转到登录界面通过
email_001登录成功_标准邮箱格式网盘系统登录功能P0打开网盘系统登录页面1. 在邮箱号输入框输入数据;2. 在密码输入框输入正确密码;3. 在验证码输入框输入正确验证码;4. 点击登录按钮。邮箱号:"test@example.com";密码:"abc123!@";验证码:假设正确验证码为 "ABCD",输入 "ABCD"输入框无错误提示,系统验证通过,页面跳转到用户主页,登录成功
email_002登录失败_邮箱为空网盘系统登录功能P1打开网盘系统登录页面1. 在邮箱号输入框输入数据;2. 在密码输入框输入正确密码;3. 在验证码输入框输入正确验证码;4. 点击登录按钮。邮箱号:"";密码:"abc123!@";验证码:假设正确验证码为"ABCD",输入"ABCD"输入框旁显示提示信息 “邮箱不能为空”,登录按钮置灰不可点击
email_003登录失败_无效邮箱网盘系统登录功能P1打开网盘系统登录页面1. 在邮箱号输入框输入数据;2. 在密码输入框输入正确密码;3. 在验证码输入框输入正确验证码;4. 点击登录按钮。邮箱号:"test@";密码:"abc123!@";验证码:假设正确验证码为 "ABCD",输入 "ABCD"输入框旁显示提示信息 “请输入有效的邮箱地址”,登录按钮置灰不可点击
password_001登录成功_正确密码网盘系统登录功能P0打开网盘系统登录页面1. 在邮箱号输入框输入正确邮箱;2. 在密码输入框输入数据;3. 在验证码输入框输入正确验证码;4. 点击登录按钮。邮箱号:"test@example.com";密码:"abc123!@";验证码:假设正确验证码为 "ABCD",输入 "ABCD"输入框无错误提示,系统验证通过,页面跳转到用户主页,登录成功
password_002登录失败_密码为空网盘系统登录功能P1打开网盘系统登录页面1. 在邮箱号输入框输入正确邮箱;2. 在密码输入框输入数据;3. 在验证码输入框输入正确验证码;4. 点击登录按钮。邮箱号:"test@example.com";密码:"";验证码:假设正确验证码为"ABCD",输入"ABCD"输入框旁显示提示信息 “密码不能为空”,登录按钮置灰不可点击
password_003登录失败_错误密码网盘系统登录功能P1打开网盘系统登录页面1. 在邮箱号输入框输入正确邮箱;2. 在密码输入框输入数据;3. 在验证码输入框输入正确验证码;4. 点击登录按钮。邮箱号:"test@example.com";密码:"abc123!";验证码:假设正确验证码为 "ABCD",输入 "ABCD"弹出提示框显示 “用户名或密码错误”,页面保持在登录界面,输入框内容保留
captcha_001登录成功_正确验证码网盘系统登录功能P0打开网盘系统登录页面1. 在邮箱号输入框输入正确邮箱;2. 在密码输入框输入正确密码;3. 在验证码输入框输入数据;4. 点击登录按钮。邮箱号:"test@example.com";密码:"abc123!@";验证码:假设正确验证码为 "ABCD",输入 "ABCD"输入框无错误提示,系统验证通过,页面跳转到用户主页,登录成功
captcha_002登录失败_验证码为空网盘系统登录功能P1打开网盘系统登录页面1. 在邮箱号输入框输入正确邮箱;2. 在密码输入框输入正确密码;3. 在验证码输入框输入数据;4. 点击登录按钮。邮箱号:"test@example.com";密码:"abc123!@";验证码:""输入框旁显示提示信息 “验证码不能为空”,登录按钮置灰不可点击
captcha_003登录失败_错误验证码网盘系统登录功能P1打开网盘系统登录页面1. 在邮箱号输入框输入正确邮箱;2. 在密码输入框输入正确密码;3. 在验证码输入框输入数据;4. 点击登录按钮。邮箱号:"test@example.com";密码:"abc123!@";验证码:假设正确验证码为 "ABCD",输入 "DCBA"输入框旁显示提示信息 “验证码错误”,登录按钮置灰不可点击
captcha_004登录失败_过期验证码网盘系统登录功能P1打开网盘系统登录页面1. 在邮箱号输入框输入正确邮箱;2. 在密码输入框输入正确密码;3. 在验证码输入框输入数据;4. 点击登录按钮。邮箱号:"test@example.com";密码:"abc123!@";验证码:假设正确验证码为 "ABCD",输入过期的 "ABCD"输入框旁显示提示信息 “验证码错误”,登录按钮置灰不可点击
login_button_001登录成功_信息全部正确网盘系统登录功能P0打开网盘系统登录页面1. 在邮箱号输入框输入数据;2. 在密码输入框输入数据;3. 在验证码输入框输入数据;4. 点击登录按钮。邮箱号:"test@example.com";密码:"abc123!@";验证码:假设正确验证码为 "ABCD",输入 "ABCD"系统验证通过,页面跳转到用户主页,登录成功
login_button_002登录失败_部分信息错误网盘系统登录功能P1打开网盘系统登录页面1. 在邮箱号输入框输入数据;2. 在密码输入框输入数据;3. 在验证码输入框输入数据;4. 点击登录按钮。邮箱号:"test@example.com";密码:"123456";验证码:假设正确验证码为 "ABCD",输入 "ABCD"弹出提示框显示 “用户名或密码错误”,页面保持在登录界面,输入框内容保留
register_option_001成功跳转注册页面网盘系统登录功能P0打开网盘系统登录页面点击 “注册账号” 选项页面跳转到注册页面
forget_password_option_001成功弹出找回密码弹窗网盘系统登录功能P0打开网盘系统登录页面点击 “忘记密码” 选项弹出 “找回密码” 弹窗,弹窗包含邮箱输入框和发送验证码按钮

 3.接口测试

        在接口测试中,我选择了apifox作为工具,这是我编写的接口文档云盘接口文档(部分接口的详细信息未完善),写好接口文档之后也需要提取接口测试的测试用例,正好apifox提供了编写测试用例的功能,就在apifox里面编写并执行接口测试用例:

 4.自动化测试

        在这个项目中,我使用了pytest+selenium测试了登录后上传文件等业务的自动化测试,测试的代码一并提交到了GitHub内,这里展示一下核心的代码:

        4.1 业务流程的封装:

class SmokePage(BasePage):
    """
    登录页面的页面对象,包含登录页面的所有元素定位和操作方法
    """
    # 定义页面元素的定位器
    username_input = (By.XPATH, '//input[@placeholder="请输入账号"]')  # 账号输入框
    password_input = (By.XPATH, '//input[@placeholder="请输入密码"]')  # 密码输入框
    check_code_input = (By.XPATH,'//input[@placeholder="请输入验证码"]') # 登录按钮
    sumbit_btn = (By.XPATH,'//*[@id="app"]/div/div/div[1]/div/form/div[4]/div/button') # 提交按钮
    upload_btn = (By.XPATH, '/html/body/div[1]/div/div[2]/div[2]/div/div[1]/div[1]/button[1]') #上传文件
    # sel_btn = (By.XPATH, '/html/body/div[1]/div/div[2]/div[2]/div/div[4]/div/div/div/div/div/div/div/button')
    upload_input = (By.XPATH, '//input[@type="file"]')
    start_upload_btn = (By.XPATH,'/html/body/div[1]/div/div[2]/div[2]/div/div[4]/div/div/div/div/div/button')
    success_msg =(By.XPATH,'//*[@id="message_2"]/p')
    # 登录方法
    def login(self, username, password,verification_code):
        """
        执行登录操作
        :param username: 用户名
        :param password: 密码
        """
        self.input_text(self.username_input, username)  # 输入用户名
        self.input_text(self.password_input, password)  # 输入密码
        self.input_text(self.check_code_input,verification_code)  # 输入验证码
        self.click(self.sumbit_btn)
        time.sleep(3)
        assert self.driver.current_url == 'http://114.132.59.198:18080/home/index'
    # 上传方法
    def upload(self, param):
        self.click(self.upload_btn)
        self.upload_file(self.upload_input,'D:\code\yundriver_pytest\check_code\captcha.png')
        time.sleep(3)
        # 点击上传文件的按钮
        self.click(self.start_upload_btn)
        # 断言是否上传成功
        assert '所有文件上传成功' == self.get_text(self.success_msg)

        4.2 测试用例的执行:

    def test_smoke(self, driver):
        """
        测试登录成功的场景
        :param driver: WebDriver实例
        """
        
        # 登录操作
        smoke_page = SmokePage(driver)
        wait = WebDriverWait(driver, 10)
        time.sleep(2)
        captcha_img = wait.until(EC.presence_of_element_located(
            (By.XPATH, '//*[@id="app"]/div/div/div[1]/div/form/div[3]/div/div/div[2]/img')))
        captcha_img.screenshot('../check_code/captcha.png')
        verification_code = self.get_verification_code('../check_code/captcha.png')
        smoke_page.login('3169642314@qq.com','123456',verification_code)

        # 上传文件
        smoke_page.upload('../check_code/captcha.png')

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值