批量执行脚本

举报
bug郭 发表于 2022/11/30 17:00:10 2022/11/30
【摘要】 大家好,我是bug郭,一名双非科班的在校大学生。对C/JAVA、数据结构、Spring系列框架、Linux及MySql、算法等领域感兴趣,喜欢将所学知识写成博客记录下来。 希望该文章对你有所帮助!如果有错误请大佬们指正!共同学习交流作者简介:CSDN java领域新星创作者blog.csdn.net/bug…掘金LV3用户 juejin.cn/user/bug…阿里云社区专家博主,星级博主,...

大家好,我是bug郭,一名双非科班的在校大学生。对C/JAVA、数据结构、Spring系列框架、Linux及MySql、算法等领域感兴趣,喜欢将所学知识写成博客记录下来。 希望该文章对你有所帮助!如果有错误请大佬们指正!共同学习交流

作者简介:

批量执行脚本

但我们需要扩展新的功能测试或者测试用例时,我们需要把多个测试用例组织在一起执行,我们可以通过unittest中的测试套件Test Suite进行测试用例的组织

假设我们编写了2个文件test1.pytest2.py我们如何同时执行这2个文件呢?

test1.py

# 导入unittest框架
import unittest
from selenium import webdriver
import time
# 继承TestCase这个类就会使用unittest框架来组织测试用例!
class Baidu1(unittest.TestCase):
    def setUp(self) -> None: # 覆盖setUP方法,测试环境搭建!
        print('---setUp---')
        self.driver = webdriver.Chrome() # 获取到浏览器驱动
        self.url = "http://www.baidu.com/" #测试的web链接
        self.driver.maximize_window() # 浏览器最大化!
        time.sleep(3)
    def tearDown(self) -> None: # 覆盖tearDown方法,测试环境销毁!
        print('---tearmDown---')
        self.driver.quit() # 关闭浏览器,释放驱动!
    # 测试用例
    def test_baidu1(self):
        self.driver.get(self.url) # 打开百度链接
        self.driver.find_element_by_id('kw').send_keys('java') # 定位到搜索框,输入文本
        time.sleep(2)
        self.driver.find_element_by_id('su').click() # 定位到搜索按钮点击!
        time.sleep(3)
    def test_baidu2(self):
        self.driver.get(self.url) # 重新打开百度链接!
        self.driver.find_element_by_link_text('新闻').click() # 打开新闻导航地址
        time.sleep(2)
        for window in self.driver.window_handles:
            self.driver.switch_to_window(window)
            if window.title =='百度新闻——海量中文资讯平台':
                break
        self.driver.find_element_by_name('word').send_keys('赣州')
        time.sleep(2)
        self.driver.find_element_by_xpath('//*[@id="s_btn_wr"]').click()
        time.sleep(2)
        #滑动到低端!
        js = 'var j = document.documentElement.scrollTop=10000'
        self.driver.execute_script(js)
        time.sleep(3)
        #滑动到顶端
        js = 'var j = document.documentElement.scrollTop=0'
        self.driver.execute_script(js)
        time.sleep(3)
    def baidu3(self):
        self.driver.get('http://baidu.com/')
        self.driver.find_element_by_partial_link_text('hao').click()
        time.sleep(2)

    if __name__=='__main__':
        unittest.main() # unittest框架提供了全局的main方法

test2.py

from selenium import webdriver
import unittest
import time
from selenium.webdriver.common.action_chains import ActionChains
class test2(unittest.TestCase): # 继承 TestCase
    def setUp(self) -> None:
        # 测试环境搭建
        print('--test2.setUp--')
        self.driver = webdriver.Chrome() #获取驱动
        self.url = 'https://fanyi.baidu.com/?aldtype=16047#auto/zh' # 百度翻译的url!
    def tearDown(self) -> None:
        #测试环境销毁
        print('--test2.tearDown--')
        self.driver.quit()
    #测试用例!
    def test_baidu1(self):
        self.driver.get(self.url) # 打开百度翻译url!
        self.driver.maximize_window() # 窗口最大化!
        self.driver.find_element_by_id('baidu_translate_input').send_keys('unittest') # 定位到翻译搜索框
        time.sleep(3)
        # 定位到弹出的广告!
        self.driver.find_element_by_xpath('//*[@id="app-guide"]/div/div/div[2]/span').click()
        time.sleep(2)
        self.driver.find_element_by_id('translate-button').click() # 定位到翻译按钮
        time.sleep(3)
        # 定位到翻译结果框!
        test = self.driver.find_element_by_xpath('/html/body/div[1]/div[2]/div/div/div[1]/div[2]/div[1]/div[2]/div/div/div[1]/p[2]').text
        print('unitest:',test)
    def test_baidu2(self):
        self.driver.get(self.url)
        # 定位到弹出的广告!
        self.driver.find_element_by_xpath('//*[@id="app-guide"]/div/div/div[2]/span').click()
        time.sleep(2)
        p = self.driver.find_element_by_xpath('/html/body/div[1]/div[1]/div/div/div/div[1]/div/span') # 定位到文档翻译
        # 将鼠标移动到该位置!
        ActionChains(self.driver).move_to_element(p).perform()
        time.sleep(2)
        # 然后定位到上传文档按钮!
        self.driver.find_element_by_xpath('//*[@id="header"]/div/div/div/div[1]/div/span').click()
        time.sleep(3)

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





- addTest()

TestSuite类中的addTest方法可以把不同类的测试用例方法组织到测试套件中,但是这里的addTest方法一次只能添加一个测试用例方法

这里的不足就是每次只能添加一个方法到套件中,并且要该方法的类导入

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。