前言
一直想学习自动化测试,但是都没行动,业余时间学习零零碎碎并记录20210417。
【Selenium项目实战】
- 项目环境搭建:安装JDK、mysql、Tomcat和测试系统
- 需求分析和用例设计
- 项目架构设计
- 完成项目基本测试
- 解决验证码问题
- 完成项目测试用例
- (用户注册案例):解决验证码,等待弹窗复杂问题
- (用户登录案例):实现登录成功和失败测试
- (管理员用户登录案例):实现验证码正确和错误测试
操作步骤
1、访问链接然后进行用户注册
- 先输入验证码固定值然后点击注册 验证码肯定不正确,然后处理
- 输入正确的验证码通过前面的方法来把验证码通过就注册成功了
2、访问的链接:http://localhost:8080/jpress/user/register
3、在testcase目录下新建一个basic目录然后下面再存放注册的文件代码,为了后期的迭代
4、test_user_register.py
from time import sleep
from selenium import webdriver
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
from util import util
# 用户注册
class TestUserRegister(object):
def __init__(self):
self.driver = webdriver.Chrome()
self.driver.get('http://localhost:8080/jpress/user/register')
self.driver.maximize_window()
# 测试登录验证码错误
def test_register_code_error(self):
username = 'test001'
email = 'test001@qq.com'
pwd = '123456'
confirmPwd = '123456'
captcha = '666'
expected = '验证码不正确'
self.driver.find_element_by_name('username').send_keys(username)
self.driver.find_element_by_name('email').send_keys(email)
self.driver.find_element_by_name('pwd').send_keys(pwd)
self.driver.find_element_by_name('confirmPwd').send_keys(confirmPwd)
# 验证码前面写死的'666'
self.driver.find_element_by_name('captcha').send_keys(captcha)
self.driver.find_element_by_xpath('/html/body/div/div/div/form/div[6]/div/button').click() # 注册按钮
sleep(3)
# 因为有弹窗所以需要切换到弹窗上
WebDriverWait(self.driver, 5).until(EC.alert_is_present())
alert = self.driver.switch_to.alert
# python 的断言
# 获取弹窗上的文字来比较
assert alert.text == expected
sleep(3)
alert.accept()
sleep(5)
self.driver.quit()
# 测试成功
def test_register_code_ok(self):
# 用工具类随机生成用户名
username = util.gen_random_str()
email = username + '@qq.com'
pwd = '123456'
confirmPwd = '123456'
# 自动获取
captcha = ''
expected = '注册成功,点击确定进行登录。'
# 输入用户名
self.driver.find_element_by_name('username').clear() # 清除为了多个方法一起跑的时候被其他数据干扰到
self.driver.find_element_by_name('username').send_keys(username)
# email
self.driver.find_element_by_name('email').clear()
self.driver.find_element_by_name('email').send_keys(email)
# 密码
self.driver.find_element_by_name('pwd').clear()
self.driver.find_element_by_name('pwd').send_keys(pwd)
# 确认密码
self.driver.find_element_by_name('confirmPwd').clear()
self.driver.find_element_by_name('confirmPwd').send_keys(confirmPwd)
# 自动识别验证码
captcha = util.get_code(self.driver)
# 输入验证码
self.driver.find_element_by_name('captcha').clear()
self.driver.find_element_by_name('captcha').send_keys(captcha)
# 点击注册
self.driver.find_element_by_xpath('/html/body/div/div/div/form/div[6]/div/button').click()
# 等待alert出现
WebDriverWait(self.driver, 5).until(EC.alert_is_present())
alert = self.driver.switch_to.alert
# 验证
assert alert.text == expected
alert.accept()
self.driver.quit()
5、mian.py
from testcase.basic.test_user_register import TestUserRegister
if __name__ == '__main__':
# ----测试用户注册案例----
# 用户注册:验证码校验失败
case1 = TestUserRegister()
# case1.test_register_code_error()
# 用户注册:成功
case1.test_register_code_ok()