Python多线程应用于自动化测试
Python多线程应用于自动化测试
将多线程在测试巧妙地应用,确实会带来很多好处,并且这是充分利用机器资源执行高效率测试很好的方式
- # -*- coding: utf-8 -*-
- import threading
- from time import ctime
- import time
- from selenium import webdriver
- def test_search(browser, word):
- print("Start search at: %s\n" % ctime())
- print("Browser is: %s\n" % browser)
- if browser == 'ie':
- browser_driver = webdriver.Ie()
- elif browser == 'chrome':
- browser_driver = webdriver.Chrome()
- elif browser != 'ie' and browser != 'chrome':
- print("browser 参数非'ie 或 chrome'启动Fiefox")
- browser_driver = webdriver.Firefox()
- browser_driver.get("http://www.baidu.com")
- browser_driver.find_element_by_id("kw").send_keys(word)
- browser_driver.find_element_by_id("su").click()
- time.sleep(3)
- browser_driver.quit()
- if __name__ == '__main__':
- dicts = {'chrome':'__davieyang__','ie':'davieyang','davieyang':'davieyang__'}
- threads = []
- for browser, word in dicts.items():
- t = threading.Thread(target = test_search, args=(browser, word))
- threads.append(t)
- for t in range(len(dicts)):
- threads[t].start()
- for t in range(len(dicts)):
- threads[t].join()
- # -*- coding: utf-8 -*-
- from selenium import webdriver
- from time import sleep
- from time import ctime
- import multiprocessing
- def start_browser(browser, time):
- if browser == "chrome":
- print("starting chrome browser now! %s" % ctime()) # 控制台打印当前时间
- chrome_driver = webdriver.Chrome()
- chrome_driver.get("http://www.baidu.com")
- sleep(time)
- chrome_driver.quit()
- elif browser == "firefox":
- print("starting firefox browser now! %s" % ctime()) # 控制台打印当前时间
- fire_driver = webdriver.Firefox()
- fire_driver.get("http://www.baidu.com")
- sleep(time)
- fire_driver.quit()
- else:
- print("starting ie browser now! %s" %ctime()) # 控制台打印当前时间
- ie_driver = webdriver.Ie()
- ie_driver.get("http://www.baidu.com")
- sleep(time)
- ie_driver.quit()
- # 定义字典参数
- browser_dict = {"chrome": 3, "firefox": 4}
- # 定义空List用于存储进程
- start_browser_processing = []
- # 循环字典Key-Value,创建进程并加入到List中
- for browser, time in browser_dict.items():
- processing_browser = multiprocessing.Process(target = start_browser, args = (browser, time))
- start_browser_processing.append(processing_browser)
- if __name__ == '__main__':
- for processing_browser in range(len(browser_dict)):
- start_browser_processing[processing_browser].start()
- for processing_browser in range(len(browser_dict)):
- start_browser_processing[processing_browser].join()
- print(u"全部结束 %s" % ctime())
Python多线程应用于自动化测试的更多相关文章
- Python多线程Selenium跨浏览器测试
前言 在web测试中,不可避免的一个测试就是浏览器兼容性测试,在没有自动化测试前,我们总是苦逼的在一台或多台机器上安装N种浏览器,然后手工在不同的浏览器上验证主业务流程和关键功能模块功能,以检测不同浏 ...
- 【Python】详解Python多线程Selenium跨浏览器测试
前言 在web测试中,不可避免的一个测试就是浏览器兼容性测试,在没有自动化测试前,我们总是苦逼的在一台或多台机器上安装N种浏览器,然后手工在不同的浏览器上验证主业务流程和关键功能模块功能,以检测不同浏 ...
- [Python+Java双语版自动化测试(接口测试+Web+App+性能+CICD)
[Python+Java双语版自动化测试(接口测试+Web+App+性能+CICD)开学典礼](https://ke.qq.com/course/453802)**测试交流群:549376944**0 ...
- python多线程学习记录
1.多线程的创建 import threading t = t.theading.Thread(target, args--) t.SetDeamon(True)//设置为守护进程 t.start() ...
- python多线程编程
Python多线程编程中常用方法: 1.join()方法:如果一个线程或者在函数执行的过程中调用另一个线程,并且希望待其完成操作后才能执行,那么在调用线程的时就可以使用被调线程的join方法join( ...
- Python 多线程教程:并发与并行
转载于: https://my.oschina.net/leejun2005/blog/398826 在批评Python的讨论中,常常说起Python多线程是多么的难用.还有人对 global int ...
- python多线程
python多线程有两种用法,一种是在函数中使用,一种是放在类中使用 1.在函数中使用 定义空的线程列表 threads=[] 创建线程 t=threading.Thread(target=函数名,a ...
- python 多线程就这么简单(转)
多线程和多进程是什么自行google补脑 对于python 多线程的理解,我花了很长时间,搜索的大部份文章都不够通俗易懂.所以,这里力图用简单的例子,让你对多线程有个初步的认识. 单线程 在好些年前的 ...
- python 多线程就这么简单(续)
之前讲了多线程的一篇博客,感觉讲的意犹未尽,其实,多线程非常有意思.因为我们在使用电脑的过程中无时无刻都在多进程和多线程.我们可以接着之前的例子继续讲.请先看我的上一篇博客. python 多线程就这 ...
随机推荐
- vue项目中导出Excel文件功能的前端代码实现
在项目中遇到了两种不同情况, 1.get请求导出文件,实现起来相对简单 // 导出数据 exportData() { window.location.href = `/oes-content-mana ...
- 导航current背景
========================================简单一点的 var locationUrl = location.href.toLowerCase(); //导航cur ...
- vue {{}}的用法
参考链接:https://blog.csdn.net/cofecode/article/details/78666233
- [学习笔记] Blender 常用工具栏,选择及游标
Shift + A 创建物体 选择工具: 默认是框选 shift 鼠标左键 加选, 再次可减选 游标 默认情况下游标在世界中心.创建新物体时,会自动被创建在游标的位置.可以随意改变游标的位置,便于建模 ...
- 2019春《C语言程序设计》课程设计的安排
课程设计的安排 课前准备: 要求同学们注册码云,并登陆: 要求组长加入由老师创建的一级组织:"2019春C语言": 要求组长建立二级组织,给自己的小组取个好听的名字,并邀请本组成员 ...
- Linux由于物理节点故障导致的异常重启-Case1
问题描述:Linux VM异常重启,需要排查问题原因 排查结果: 查询Messages日志获取到的信息 虚拟机内核版本: Jun :: test01 kernel: Linux version -.e ...
- Python中datetime库的用法
datetime模块用于是date和time模块的合集,datetime有两个常量,MAXYEAR和MINYEAR,分别是9999和1. datetime模块定义了5个类,分别是 1.datetime ...
- spring cloud微服务实践一
最近在学习spring框架.其中spring cloud在微服务方面很火,所以在学习过程中,也做一些记录. 注:这一个系列的开发环境版本为 java1.8, spring boot2.x, sprin ...
- vue中设置全局的css样式
只需在main.js ====import './style.less' main.js =>> import Vue from 'vue' import App from ...
- 06 ServletConfig、ServletContext_作用域对象
ServletConfig:表示servlet的配置信息,一个servlet对象对应一个servletconfig对象 方法: 1.获取初始化参数 config.getInitParameter( ...