在我们学习selenium的po模式之前,我们先要了解什么是自动化测试,以及selenium中的八大定位的基本操作,那么接下来,您可以跟我一起走进po模式中的Case篇的编写(通过调用Page页来执行用例)
引言
Case页的理念:
通过调用Page页填充好的定位信息来具体实施用例,比传统的编写自动化用例更加简洁,减少了多余的代码,如果以后开发将定位元素进行修改,我们也可以回到Page中修改定位元素,这样代码又可以复用了
通过之前编写的Page页,这次我们来在case页中具体执行用例
Page页的具体编写
本博主会持续更新,现在对一号店购物平台来设计自动化测试用例
编写Case页前提:
已经编写好相关模块的Page,比如博主在做的一号店登录,那么就要先准备好Page页
1、首先要在Case包下创建test_login.py文件,并创建YHD_Login类
3、引用数据驱动,导入unittest框架、导入生成HTML报告模块、导入selenium下的webdriver
4、准备好用那种方式做数据驱动(博主比较喜欢CSV,因为简单),并设计好执行数据
准备好的三组数据–csv格式
from Page_Object_Model.Page.Login_Page import Logins
import unittest
from ddt import ddt,data
from Page_Object_Model.Common.common import Common
import HTMLTestReportCN
from selenium import webdriver
@ddt # 数据驱动 ddt
class YHD_Login(unittest.TestCase):
@classmethod
def setUpClass(cls) -> None:
cls.log = Common().GetLogs() #我在Common页把Common类的path路径定死了,所以不需再传路径
cls.log.debug('开始执行一号店登录用例')
@classmethod
def tearDownClass(cls) -> None:
cls.log.debug('所有用例执行结束')
def setUp(self) -> None:
self.driver = webdriver.Chrome()
self.driver.implicitly_wait(20)
self.log.debug('开始执行本条用例')
def tearDown(self) -> None:
self.log.debug('本条用例结束')
self.driver.quit()
@data(Common().ReadCSV('一号店登录数据'))
def test_001(self,data):
for i in range(0,2): #将csv表内数据做循环,因为只有三组数据,所以循环三次
admin = Logins(self.driver,"https://www.yhd.com/")
admin.get_url()
admin.click_login()
admin.input_username(data[i][0])
admin.input_pwd(data[i][1])
self.driver.quit()
self.setUp()
if __name__ == '__main__':
loader = unittest.TestLoader().loadTestsFromTestCase(YHD_Login) #使用loader加载用例的方式去寻找YHD_Loigin类下的所有以test开头的用例
suite = unittest.TestSuite([loader,]) # 将找到的用例加入测试容器中
import time
now = time.strftime('%Y-%m-%d-%H-%M-%S')
path = r'D:\PycharmProjects\自动化\Page_Object_Model\Report\HTML'+'/' + now + '.html'
with open(path,'wb+') as f: # 生成HTML报告
run = HTMLTestReportCN.HTMLTestRunner(stream=f,tester='白嘉诚',description='Case页调用Page页执行用例',title='一号店登录模块执行结果')
run.run(suite)
以上就是PO模式的具体实施,Case页调用Page来执行自动化测试用例
总体来说PO还是比较好用的,目前还是主流
如有疑问,请在博客下方留言
小友定当知无不尽
转载:https://blog.csdn.net/weixin_46457203/article/details/105877689
查看评论