unittest
unitest的默认规则
1、测试文件:测试文件必须先import unittes
2、测试类:必须继承unittest.TestCase
3、测试方法:必须test_开头
web自动化
一、准备工作
1、插件下载
下载浏览器的驱动插件geckodriver,把驱动插件放在python的安装目录下
2、新建项目
3、python软件包
在项目中安装软件包,在web自动话项目中都会用到selenium,可以先安装selenium包,后期可以根据需要安装其他的软件包。注意,每一个新的项目中需要所需用到的包不同,所以每一个新建的项目都需要重新安装软件包
二、编写自动化用例
1、新建py文件
在项目中新建py文件,py文件的文件名和类名以及方法名需要和Unittest的规则保持一致
2、导入包
规则确认好之后,需要导入基础包,基础包,是web自动化测试种就要用到的基础包
import unittest
from selenium import Webdriver
from selenium.webdriver.common.by import By
3、编写测试方法
测试方法主要分5个部分:驱动浏览器,加载页面,定位元素,元素操作,关闭页面
1、驱动浏览器,
在驱动器选择使用哪一个浏览器加载页面
对所选的浏览器设置一个变量
import unittest
from selenium import Webdriver
from selenium.webdriver.common.by import By
class TestBase(unittest.TestCase):
def test_01(self):
driver=webdriver.Firefox()
2、加载页面
使用浏览器加载页面
import unittest
from selenium import Webdriver
from selenium.webdriver.common.by import By
class TestBase(unittest.TestCase):
def test_01(self):
driver=webdriver.Firefox()
driver.get("https://www.baidu.com")
3、定位元素
查看web页面的元素信息,需要在加载的页面里通过F12快捷键来查看元素信息,比如F12键后,在百度一下的位置,右键》检查,就可以在查看器里看到百度一下的元素信息,百度一下的元素id的信息是su,同理其他元素的定位按照这个方法查看元素信息
元素有八类:id,name,class_name,tag_name,xpath,,link_text,partial_link_text,css_selector
对定位的元素设置一个变量
import unittest
from selenium import Webdriver
from selenium.webdriver.common.by import By
class TestBase(unittest.TestCase):
def test_01(self):
driver=webdriver.Firefox()
driver.get("https://www.baidu.com")
text=driver.find_element(By.ID,"kw")#定位到文本框
baidu=driver.find_element(By.ID,"su")#定位到的百度一下按钮
注意定位元素时,有find_element和find_elements,
find_element定位到的元素是有且唯一的,如果定位不到元素,就会发生异常
find_elements定位元素返回的是一组列表元素,如果定位不到元素,返回列表为空,不报异常信息
4、元素操作
元素的操作主要就2种,click(),sendkeys()
import unittest
from selenium import Webdriver
from selenium.webdriver.common.by import By
class TestBase(unittest.TestCase):
def test_01(self):
driver=webdriver.Firefox()
driver.get("https://www.baidu.com")
text=driver.find_element(By.ID,"kw")#定位到文本框
baidu=driver.find_element(By.ID,"su")#定位到的百度一下按钮
text.sendkeys("unittest")#文本框输入”unittest“
baidu.click()#点击百度一下进行搜索
5、关闭页面
关闭浏览器打开的页面,close()是关闭当前的标签页,qiut()是关闭所有的标签页
import unittest
from selenium import Webdriver
from selenium.webdriver.common.by import By
class TestBase(unittest.TestCase):
def test_01(self):
driver=webdriver.Firefox()
driver.get("https://www.baidu.com")
text=driver.find_element(By.ID,"kw")#定位到文本框
baidu=driver.find_element(By.ID,"su")#定位到的百度一下按钮
text.sendkeys("unittest")#文本框输入”unittest“
baidu.click()#点击百度一下进行搜索
driver.close()#关闭当前标签页
driver.quit()#关闭所有的标签页
三、执行自动化
完成用例编写后,可以通过unittest的main 方法运行
import unittest
from selenium import Webdriver
from selenium.webdriver.common.by import By
class TestBase(unittest.TestCase):
def test_01(self):
driver=webdriver.Firefox()
driver.get("https://www.baidu.com")
text=driver.find_element(By.ID,"kw")#定位到文本框
baidu=driver.find_element(By.ID,"su")#定位到的百度一下按钮
text.sendkeys("unittest")#文本框输入”unittest“
baidu.click()#点击百度一下进行搜索
driver.close()#关闭当前标签页
driver.quit()#关闭所有的标签页
if __name__=='__main__':
unittest.main()