python多线程执行测试用例_多线程执行测试用例

python提供了两个模块来实现多线程thread 和threading ,thread 不支持守护线程,当主线程退出后,所以的子线程不管它们是否在工作,都会被强行退出。在threading 得到了弥补,所以我们应该尽量使用threading

下面看一个用多线程技术执行测试用例,实现操作多个浏览器的例子

#coding=utf-8

import threading

from selenium import webdriver

from time import ctime,sleep

#测试用例

def test_baidu(browser,search):

print('start:%s' % ctime)

print('browser:%s '% browser)

if browser=="ie":

driver=webdriver.Ie()

elif browser=="chrome":

driver=webdriver.Chrome()

elif browser=="ff":

driver=webdriver.Firefox()

else:

print("browserde only ie /ff/ chrome")

driver.get('http://www.baidu.com')

driver.find_element_by_id("kw").send_keys(search)

driver.find_element_by_id("su").click()

sleep(2)

driver.quit()

if __name__=='__main__':

#指定参数(指定浏览器与百度搜索内容)

lists={'chrome':'thraeding','ie':'webdriver','ff':'python'}

threads=[]

file=range(len(lists))

#创建线程

for browser,search in lists.items():

t=threading.Thread(target=test_baidu,args=(browser,search))

threads.append(t)

#启动线程

for t in file:

threads[t].start()

for t in file:

threads[t].join()

print('end:%s' % ctime())

执行结果如下图:

808722-20170914154313813-902631037.png

首先,使用threading,首先要引入threading;

其次,创建lists字典,对浏览器与搜索的内容进行参数化,通过多线程来运行test_baidu()的测试用例; 最后,在执行用例前使用多重if来判断通过那个浏览器运行测试用例,并通过百度搜索搜索对应的关键 字;

注意:

unittest框架不支持多线程技术,不能想Java的testNG框架那样经过简单的配置后,执行多线程的测试用例

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
多线程执行测试框架用例可以提高执行效率,特别是在大规模测试中。以下是一个简单的示例代码,演示如何使用多线程执行测试框架的用例: ```python import threading import unittest # 定义测试用例类 class MyTestCase(unittest.TestCase): def test_case1(self): # 测试用例1的代码逻辑 pass def test_case2(self): # 测试用例2的代码逻辑 pass # 添加更多的测试用例方法... if __name__ == '__main__': # 创建测试套件并添加测试用例 suite = unittest.TestSuite() suite.addTest(MyTestCase('test_case1')) suite.addTest(MyTestCase('test_case2')) # 添加更多的测试用例... # 定义执行用例的函数 def run_test_case(test_case): # 执行用例 unittest.TextTestRunner().run(test_case) # 创建线程列表 threads = [] # 创建线程并启动执行 for test in suite: thread = threading.Thread(target=run_test_case, args=(test,)) thread.start() threads.append(thread) # 等待所有线程执行完毕 for thread in threads: thread.join() ``` 在上面的示例代码中,我们使用了 Python 自带的 unittest 框架来定义测试用例。首先,我们创建了一个 MyTestCase 类,其中包含了多个测试用例方法,比如 test_case1 和 test_case2。然后,我们创建了一个测试套件(suite)并添加了需要执行测试用例。 接下来,我们定义了一个 run_test_case 函数,用于执行测试用例。然后,我们创建了一个线程列表,并使用线程创建和启动多个线程来执行测试用例。最后,我们使用 join() 方法等待所有线程执行完毕。 这样,我们就可以通过多线程的方式来执行测试框架的用例,提高执行效率。当然,在实际应用中,你可能还需要处理测试结果的收集和报告等功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值