前言:已经学习selenium许久了,奈何公司的项目还在码代码中...,感觉自己学的东西快忘的差不多了,所以就找个网站练练手,顺便回顾一下UI自动化的知识,也希望跟我一样的小白有所受益。
一、用例分析(根据所测网站对应分析)
用例1:
正确输入手机号和密码,点击登录
期望:有帮助中心字样(系统跳至首页后,会有个帮助中心,也可以选择其他字样作为判定,这里不方便截图:)
用例2:
不输入手机号和密码,点击登录
期望:请输入手机号码(提示信息)
用例3:
只输入手机号不输入密码,点击登录
期望:请输入密码(提示信息)
用例4:
只输入密码不输入手机号,点击登录
期望:请输入手机号码(提示信息)
用例5:
输入错误的用户名和密码
期望:账号不存在(提示信息)
。。。。。。
当然,还有测试用例没列举完,比如特殊字符、长度等的校验,由于测试的这个网站没有相关校验(😶无奈。。),所以暂不做介绍。
二、代码编写
登录测试文件:test_klogin.py
-
import unittest
-
from selenium import webdriver
-
import time
-
from common.base import Base
-
class TestKlogin(unittest.TestCase):
-
#定位手机号
-
username = ("name","loginName")
-
#定位密码
-
psw = ("name","loginPassWord")
-
#定位登录按钮
-
loginbutton = ("id","loginBtn")
-
#定位帮助中心
-
help = ("xpath","//*[contains(text(),'帮助中心')]")
-
print("help",help)
-
#定位提示信息
-
message = ("className","toast-message")
-
print("message" ,message)
-
@classmethod
-
def setUpClass(cls):
-
cls.driver = webdriver.Firefox()
-
cls.baselei = Base(cls.driver)
-
def setUp(self):
-
self.driver.get("url地址")
-
def tearDown(self):
-
# 清空cookies
-
self.driver.delete_all_cookies()
-
@classmethod
-
def tearDownClass(cls):
-
cls.driver.quit()
-
def test_01_loginsuccess(self):
-
'''正确输入手机号和密码'''
-
self.baselei.send(self.username,"13000000000")
-
self.baselei.send(self.psw,"666666")
-
self.baselei.click(self.loginbutton)
-
result1=self.baselei.is_element_exist(self.help)
-
self.assertTrue(result1)
-
def test_02_bushuru(self):
-
'''不输入,点击登录'''
-
self.baselei.click(self.loginbutton)
-
result2 =self.baselei.find(self.message).text
-
print("我是内容test02:",result2)
-
exp2 = "请输入手机号码"
-
self.assertEqual(result2,exp2)
-
def test_03_shuruname(self):
-
'''只输入手机号,不输入密码'''
-
self.baselei.send(self.username,"12343657")
-
self.baselei.click(self.loginbutton)
-
result3 = self.baselei.find(self.message).text
-
print("我是内容test03:",result3)
-
exp3="请输入密码"
-
self.assertTrue(result3==exp3)
-
def test_04_shurupsw(self):
-
'''只输入密码,不输入手机号'''
-
self.baselei.send(self.psw,"123465")
-
self.baselei.click(self.loginbutton)
-
result4 = self.baselei.find(self.message).text
-
print("我是内容test04:",result4)
-
exp4="请输入手机号码"
-
self.assertTrue(result4==exp4)
-
def test_05_shurufail(self):
-
'''输入错误的账号和密码'''
-
self.baselei.send(self.username,"4334668")
-
self.baselei.send(self.psw,"325465")
-
self.baselei.click(self.loginbutton)
-
result5 = self.baselei.find(self.message).text
-
print("我是内容test05",result5)
-
exp5 = "账号不存在"
-
self.assertEqual(result5,exp5)
-
if __name__ == '__main__':
-
unittest.main()
base文件:base.by
-
from selenium.webdriver.support.ui import WebDriverWait
-
from selenium import webdriver
-
class Base():
-
def __init__(self,driver):
-
self.driver=driver
-
def find(self,locator):
-
'''locator = ("id","kw"),查找某元素'''
-
element = WebDriverWait(self.driver, 10, 1).until(lambda x: x.find_element(*locator))
-
return element
-
def send(self,locator,text):
-
'''输入框传值'''
-
self.find(locator).send_keys(text)
-
def click(self,locator):
-
'''点击事件'''
-
self.find(locator).click()
-
def is_element_exist(self,locator):
-
'''判断元素是否存在'''
-
els=self.finds(locator)
-
count = len(els) #计算元素个数
-
if len(els) < 1:
-
return False
-
else:
-
print("定位到的元素个数:%s"%count)
-
return True
三、运行结果
总结:
感谢每一个认真阅读我文章的人!!!
作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。