前言:已经学习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
三、运行结果
转自:https://www.cnblogs.com/yudx/p/11249476.html