python+selenium自动化框架
---恢复内容开始---
主要使用的模块:
- selenium/webdriver模块(须准备Chrome驱动),主要用于调用浏览器实现自动点击。
- unittest模块,主要用于整合测试用例。
- xlrd模块,主要用于调用Excle获取测试数据。
- HTMLTestRunnerCN模块,主要用于生成测试报告。
框架分层思路:
- 常用函数层
- 测试数据层
- 测试元素层
- 测试用例层
- 测试结果层
详细解释层级划分:
一、常用函数层:主要写常用的一些类,方便后面调用,如:selenium调用浏览器、读取URL的EXCEL、读取用户数据的EXCEL等
二、测试数据层:主要存放一些用户数据/URL/测试数据等到EXCEL中方便后续调用 我这里存放的主要有:
- 测试网站的URL。
- 项目中不同权限用户的用户名和密码
- 常用配置文件信息
三、测试元素层:主要存放一些较长的Xpath和Css定位路径,使后续脚本简洁
四、测试用例层:主要使用unittest模块 创建测试用例:
class Test(unittest.TestCase): def setUp(self): self.flag = 1 self.ca = function.OpenChrome() self.br = function.OpenChrome().open() self.xpath = element.Element() self.eid = element.ID() self.css = element.Css() self.temp = function.Openurl() self.br.maximize_window() #以上为定义unittest类,并在setUp中添加前置条件 def test_登录用户(self):... def test_xxx(self):... def test_xxx(self):... def test_xxx(self):... def test_xxx(self):... #以上为使用test__xx函数逐个创建测试用例 def tearDown(self): self.assertEqual(self.flag,1,msg="用例执行失败") self.br.close() #以上为添加后置条件,如:断言,关闭浏览器等
五、测试结果层:主要使用HTMLTestRunnerCN模块生成测试报告:
filepath = '../result/Yunque_result.html' fp = open(filepath,'wb') runner = HTMLTestRunnerCN.HTMLTestReportCN(stream=fp,title='xx测试报告',tester='测试人员',description = '报告中描述部分') runner.run(suite)
测试结果如下图: