5、编写自动化测试脚本

上面已经对页面元素进行了封装,接下来就是动手写脚本了。

这里写了2个脚本,直接上代码:


1、test_baidu_news.py

# -*- coding:utf-8 -*-
import unittest
import sys,os
from framework.browser_engine import BrowserEngine
from pageobjects.home_baidu import Home_Baidu
from pageobjects.news_page import News_Page
import traceback

class test_Baidu_News(unittest.TestCase):

    def setUp(self):
        browser = BrowserEngine()
        self.driver = browser.getdriver()
        browser.open_browser()

    def tearDown(self):
        test_method_name = self._testMethodName
        runlog_path = r'F:\python_autotest\runlog'
        os.chdir(runlog_path)
        method_path = runlog_path + test_method_name
        print(method_path)
        if sys.exc_info()[0]:
            if os.path.exists(method_path):
                os.chdir(method_path)
                self.driver.get_screenshot_as_file('fail.png')
                with open('log.txt', 'w') as e:
                    e.write(str(traceback.format_exc()))
            else:
                os.mkdir(test_method_name)
                os.chdir(test_method_name)
                self.driver.get_screenshot_as_file('fail.png')
                with open('log.txt', 'w') as e:
                    e.write(str(traceback.format_exc()))
        super(test_Baidu_News, self).tearDown()
        self.driver.quit()

    def test_news_zhaolei(self):
        hb = Home_Baidu(self.driver)
        hb.news_ele().click()
        hb.sleep(1)
        np = News_Page(self.driver)
        np.news_input_ele().send_keys(u"赵雷")
        np.news_submit_ele().click()
        hb.sleep(2)


if __name__ == '__main__':
    unittest.main()

这里的重点在于tearDown方法,我增加了脚本执行失败自动截图并打印出错误信息的功能,用于脚本失败原因定位。

这里多说下,测试用例最好都以test_开头,因为涉及到后面批量执行脚本,具体原因自行百度。

下面把另一个脚本的代码也贴出来吧,其实是一样的。

2、test_baidu_vedio.py

# -*- coding:utf-8 -*-
import unittest
import sys
import os
import traceback
from framework.browser_engine import BrowserEngine
from pageobjects.home_baidu import Home_Baidu
from pageobjects.vedio_page import Vedio_Page


class test_baidu_vedio(unittest.TestCase):
    def setUp(self):
        browser = BrowserEngine()
        self.driver = browser.getdriver()
        browser.open_browser()

    def tearDown(self):
        test_method_name = self._testMethodName
        runlog_path = r'F:\python_autotest\runlog'
        os.chdir(runlog_path)
        method_path = runlog_path + test_method_name
        print(method_path)
        if sys.exc_info()[0]:
            if os.path.exists(method_path):
                os.chdir(method_path)
                self.driver.get_screenshot_as_file('fail.png')
                with open('log.txt','w') as e:
                    e.write(str(traceback.format_exc()))
            else:
                os.mkdir(test_method_name)
                os.chdir(test_method_name)
                self.driver.get_screenshot_as_file('fail.png')
                with open('log.txt', 'w') as e:
                    e.write(str(traceback.format_exc()))
        super(test_baidu_vedio, self).tearDown()
        self.driver.quit()


    def test_vedio_zhoujielun(self):
        hb = Home_Baidu(self.driver)
        hb.vedio_ele().click()
        hb.sleep(1)
        vp = Vedio_Page(self.driver)
        vp.vedio_input_ele().send_keys(u"周杰伦")
        vp.vedio_submit_ele().click()
        vp.sleep(2)


if __name__ == '__main__':
    unittest.main()

猜你喜欢

转载自blog.csdn.net/qq_37969201/article/details/79920238