app自动化框架怎么实现java多线程框架跑用列

#coding=utf-8
from selenium import webdriver
import threading
import csv
import time
from selenium.webdriver.common.action_chains import ActionChains
#登录界面的Url,例如:http://www.baidu.com
#url="http://www.baidu.com"
#登录页面的URL
Logninurl=""
#确认页面的URL
Confirmurl=""
#员工自助URL
SelfHelpurl=""
#个人信息页面
SelfInforurl=""
#测试数据存放文件路径和文件
peopleinfo="D:\\A\\huaibin.csv"
#创建文件句柄并赋予该文件读权限
userInfo=file(peopleinfo,"r+")
def Perform_Follow():
#获取文件中的信息
reader=csv.reader(userInfo)
driver=webdriver.Ie()
#获取文件中每行的信息
for line in reader:
driver.get(Logninurl)
driver.find_element_by_id("").click()
time.sleep(3)
driver.find_element_by_class_name("").click()
time.sleep(3)
#选择河南电力
driver.find_element_by_link_text('').click()
time.sleep(3)
#输入用户名
driver.find_element_by_id("username").send_keys(line[0])
time.sleep(3)
driver.find_element_by_id("password").send_keys(line[1])
time.sleep(3)
#点击登录按钮
driver.find_element_by_id("submi").click()
time.sleep(3)
#进入确认页,点击不在显示
driver.get(Confirmurl)
time.sleep(3)
driver.find_element_by_link_text('不再显示').click()
time.sleep(3)
#进入员工自助页,点击个人基本信息
driver.get(SelfHelpurl)
time.sleep(3)
driver.find_element_by_link_text('个人基本信息').click()
time.sleep(3)
#进入到个人信息页
driver.get(SelfInforurl)
time.sleep(3)
if driver.find_element_by_name('xxqrBtn')!=null:
#点击信息确认
driver.find_element_by_name('xxqrBtn').click()
time.sleep(3)
#点击对话框中的信任
driver.switch_to_alert().accept()
time.sleep(3)
driver.switch_to_alert().accept()
time.sleep(3)
driver.get(SelfHelpurl)
time.sleep(3)
driver.find_element_by_link_text('注销').click()
time.sleep(3)
driver.close()
#创建数组存放线程
threads=[]
#创建100个线程
for i in range(10):
#针对函数创建线程
t=threading.Thread(target=Perform_Follow,args=())
#把创建的线程加入线程组
threads.append(t)
if __name__ == '__main__':
for i in threads:
#keep thread
for i in threads:
userInfo.close()
Web自动化测试(全网最给力自动化教程)
selenium之登录账号参数化-Map集合
自动化脚本编写实例
Python自动化脚本【1】url提取及自动打开页面
Java+Selenium3基础篇5-第一个自动化测试脚本
没有更多推荐了,#coding=utf-8
from selenium import webdriver
import threading
import csv
import time
from selenium.webdriver.common.action_chains import ActionChains
#登录界面的Url,例如:http://www.baidu.com
#url="http://www.baidu.com"
#登录页面的URL
Logninurl=""
#确认页面的URL
Confirmurl=""
#员工自助URL
SelfHelpurl=""
#个人信息页面
SelfInforurl=""
#测试数据存放文件路径和文件
peopleinfo="D:\\A\\huaibin.csv"
#创建文件句柄并赋予该文件读权限
userInfo=file(peopleinfo,"r+")
def Perform_Follow():
#获取文件中的信息
reader=csv.reader(userInfo)
driver=webdriver.Ie()
#获取文件中每行的信息
for line in reader:
driver.get(Logninurl)
driver.find_element_by_id("").click()
time.sleep(3)
driver.find_element_by_class_name("").click()
time.sleep(3)
#选择河南电力
driver.find_element_by_link_text('').click()
time.sleep(3)
#输入用户名
driver.find_element_by_id("username").send_keys(line[0])
time.sleep(3)
driver.find_element_by_id("password").send_keys(line[1])
time.sleep(3)
#点击登录按钮
driver.find_element_by_id("submi").click()
time.sleep(3)
#进入确认页,点击不在显示
driver.get(Confirmurl)
time.sleep(3)
driver.find_element_by_link_text('不再显示').click()
time.sleep(3)
#进入员工自助页,点击个人基本信息
driver.get(SelfHelpurl)
time.sleep(3)
driver.find_element_by_link_text('个人基本信息').click()
time.sleep(3)
#进入到个人信息页
driver.get(SelfInforurl)
time.sleep(3)
if driver.find_element_by_name('xxqrBtn')!=null:
#点击信息确认
driver.find_element_by_name('xxqrBtn').click()
time.sleep(3)
#点击对话框中的信任
driver.switch_to_alert().accept()
time.sleep(3)
driver.switch_to_alert().accept()
time.sleep(3)
driver.get(SelfHelpurl)
time.sleep(3)
driver.find_element_by_link_text('注销').click()
time.sleep(3)
driver.close()
#创建数组存放线程
threads=[]
#创建100个线程
for i in range(10):
#针对函数创建线程
t=threading.Thread(target=Perform_Follow,args=())
#把创建的线程加入线程组
threads.append(t)
if __name__ == '__main__':
for i in threads:
#keep thread
for i in threads:
userInfo.close()
web自动登录方法汇总(转自老大指导)
Web自动化测试(全网最给力自动化教程)
selenium之登录账号参数化-Map集合
自动化脚本编写实例
Python自动化脚本【1】url提取及自动打开页面
Java+Selenium3基础篇5-第一个自动化测试脚本
没有更多推荐了,欢迎查阅Apache JMeter(性能自动化测试框架体系)
JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测 试但后来扩展到其他测试领域
可用于压力测试及性能测试,数据库测试,Java程序的测试,HTTP及FTP测试,Web Service测试等等
可用于对静态的和动态的资源(文件,Servlet,Perl脚本,java 对象,数据库和查询,FTP服务器等等)的性能进行测试
可用于对服务器、网络或对象模拟巨大的负载,来在不同压力类别下测试它们的 强度和分析整体性能
可用于对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果
源码地址:
Gitee地址:
GitHub地址:
框架介绍:
JMeter + Dat + Excel + Ant + Jenkins
使用JMeter作为性能测试驱动程序
使用Dat作为数据参数化文件,以供JMeter调用
使用Excel作为测试报告数据管理工具,方便统计数据,进行数据分析生成报表
使用Ant作为Java的build打包工具,方便项目代码打包
使用Jenkins作为自动化持续集成平台,方便自动编译,自动打包,自动运行测试脚本,邮件发送测试报告
主要特性:
能够对HTTP和FTP服务器进行压力和性能测试, 也可以对任何数据库进行同样的测试(通过JDBC)
完全的可移植性和100%纯java,高可扩展性
完全 Swing 和轻量组件支持(预编译的JAR使用 javax.swing.*)包
完全多线程 框架允许通过多个线程并发取样和 通过单独的线程组对不同的功能同时取样
精心的GUI设计允许快速操作和更精确的计时
缓存和离线分析/回放测试结果
可链接的取样器允许无限制的测试能力,具有提供动态输入到测试的功能(包括Javascrīpt)
各种负载统计表和可链接的计时器可供选择
数据分析和可视化插件提供了很好的可扩展性以及个性化
10. 支持脚本变成的取样器(在1.9.2及以上版本支持BeanShell)
环境配置:
测试实例:
JMeter里面的元件很多,逻辑控制器,配置元件,定时器,Sampler,监听器等等,先给出一个实例,慢慢了解元件的使用方法。测试一个网站,我们至少需要:用户,发送请求,查看结果这三个过程
一、添加线程组
在“测试计划”上右键,选择“添加”---“Thread Users”---“线程组”,如下图所示:
其中,对我们有影响的参数是线程数(设置发送请求的用户数目),Ramp-up period: 每个请求发生的总时间间隔,单位是秒,循环次数(请求发生的重复次数)。如果我们需要JMeter模拟五个请求者(也就是五个线程),每个请求者连续请求两次,则如下图设置:
二、添加请求
我们要访问一个网页,比如是百度首页,则是http请求,则添加http请求,在线程组上右键---“添加”---“Sampler”---“HTTP请求”
http请求的属性值中“Web服务器名称或IP”填写www.baidu.com就可以了:如下图所示:
三、加监视器
监视器的种类很多,根据自己的需要添加,我们选择“查看结果树”。在线程组上右键---“添加”---“监视器”---“查看结果树”,如下图所示:
运行完毕后,即可查看结果
五、测试报告:
测试报告分为四种,前三种是Jmeter自带的聚合报告,图形结果,表格结果,最后一种是Excel做的数据分析表
Excel做的数据分析表,更加美观,清晰明朗
六、Jnekins持续集成:
搭建Jenkins环境,具体请参考:
配置Jenkins自动化持续集成项目,即可实现远程服务器自动(构建,编译,打包)运行脚本,发送邮件测试报告等
七、感谢:
非常感谢您花费时间阅读,祝您在这里记录、阅读、分享愉快!
欢迎留言评论,有问题也可以联系我或者加群交流....
「原创声明:保留所有权利,禁止转载」
楼主,链接打开不存在
屏蔽了此话题:请去除图片中的其他水印
水印已去掉,麻烦重新审核下
Excel报表里的图表是通过手工做的吗
jmeter不能主动释放ftp连接,感觉不适合做ftp性能测试呀
是的,只需要替换上面的数据,即可自动生成
JM主要还是做一些接口方面性能的压力测试
后方可回复, 如果你还没有账号请点击这里 。
hagyao520 (King)
第 12891 位会员 /
共收到 7 条回复如何在线程中使用OLE自动化---急急急!!!
[问题点数:300分,结帖人little_boy]
本版专家分:0
结帖率 100%
CSDN今日推荐
本版专家分:7400
2000年 总版技术专家分年内排行榜第三
2000年1月 总版技术专家分月排行榜第一
2000年6月 总版技术专家分月排行榜第二
2000年6月 Delphi大版内专家分月排行榜第一2000年5月 Delphi大版内专家分月排行榜第一2000年3月 Delphi大版内专家分月排行榜第一
本版专家分:3442
2000年2月 Delphi大版内专家分月排行榜第二
2000年3月 Delphi大版内专家分月排行榜第三
本版专家分:3716
2000年2月 总版技术专家分月排行榜第二
2000年2月 VB大版内专家分月排行榜第二
2000年2月 Delphi大版内专家分月排行榜第三
本版专家分:161
本版专家分:277
2000年2月 总版技术专家分月排行榜第三
2000年2月 C/C++大版内专家分月排行榜第一
2000年2月 VC/MFC大版内专家分月排行榜第二
本版专家分:0
本版专家分:277
2000年2月 总版技术专家分月排行榜第三
2000年2月 C/C++大版内专家分月排行榜第一
2000年2月 VC/MFC大版内专家分月排行榜第二
本版专家分:0
本版专家分:3442
2000年2月 Delphi大版内专家分月排行榜第二
2000年3月 Delphi大版内专家分月排行榜第三
本版专家分:115
本版专家分:277
2000年2月 总版技术专家分月排行榜第三
2000年2月 C/C++大版内专家分月排行榜第一
2000年2月 VC/MFC大版内专家分月排行榜第二
匿名用户不能发表回复!
其他相关推荐
第一讲:OLE概述
OLE/ActiveX/COM技术是MS的核心应用技术,只有彻底洞察其理论精髓,才能以不变应万变。
我们首先从OLE谈起。   
一、过去的OLE和今天的OLE
作为COM技术前身的OLE,其最初含义是指在程序之间链接和嵌入对象数据(Object Link Embeded)。它提供了建立混合文档的手段(资深Windows 3.X 用户可能记得
其实Java并不擅长做这类开发和研究,尤其是媒体影音是Java的弱项。但是为了项目,只能丧心病狂了。
起初在网络上找到了一个可行的调用类,并有一个调用实例,相信有过这方面经验都有下载过,文件名就叫WMP。但是这个还不能满足我现在做的这个项目的功能需求,里面缺少很多官方文档的空间属性方法,其中就包含我需要的。
最开始的解决方法是在网络上载找找看,希望能找到完整的类包,但是相关的资源都是大家炒来炒
所有 OLE Api 和接口的目的
初始化和内存管理
自定义服务
服务器管理
(名字对象)
结构化的存储
在 MFC 中,操作 Excel 表格内容还是比较方便的,直接VS 的工作项目添加类即可。
大致如下:
1 工程属性右键 Add Class -& MFC -& MFC Class From TypeLib --&Add
2 在 Available type libraries: 选择电脑上的 Excel 版本库,然后选择如下的几个类添加到右边框,完成即可在项目内生成一个 C
求电路课件完整版邱先生的最好 其他的也行,马上要考试了 谢谢了
使用 OLE 嵌入,其他应用程序文档中嵌入的文档可以修改自动化通过双击嵌入的文档以将其激活&编辑&或&打开&中模式。
本文演示如何嵌入并自动化 Microsoft Office Word 文档的 MFC 单文档界面应用程序中。相同的方法适用于任何 Word 版本。不同之处在于不是什么版本的 Word 创建的文档中,但相反,哪个版本的 Word 中使用的自动化过程。
使用OLE的方法操作EXCEL,首先计算机必须安装excel,这样才会有接口暴露出来。本次使用大神封装好的类。
excel作为OLE/COM库插件,定义好了各类交互接口,而且这些接口是跨语言的,可以导入这些接口,操作excel,本问主要实现excel的读写,所以需要_Application、Workbooks、_Workbook、Worksheets、_Worksheet、Range这几个接口。
全面深入学习OLE技术引言(问题的提出)1.如何将同步软件的联系人/日历/任务/邮件等信息导入到微软的OutLook软件中为了解决此问题,就需要用到微软的OLE技术。涉及相关技术有:OLE,OLE Automation,ActiveX,COM等技术。本文企图就这些技术讲解其背景,其历史,其发展变革,其相互关系。一.OLE技术是什么?OLE是Object Link Embed
jmeter使用说明 主要是对jemet进行压测时候回急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急
pdg 格式的电子书,介绍如何在vb.net中使用线程技术。内容简介:1.windows多线程机制 2.vb.net的线程操作 3.vb.net线程实例 ...假设执行一条脚本(.py)用例一分钟,那么100个脚本需要100分钟,当你的用例达到一千条时需要1000分钟,也就是16个多小时。。。
那么如何并行运行多个.py的脚本,节省时间呢?这就用到多线程了,理论上开2个线程时间节省一半,开5个线程,时间就缩短五倍了。
1.项目结构跟之前的设计是一样的:
case test开头的.py用例脚本
common 放公共模块,如HTMLTestRunner
report 放生成的html报告
run_all.py 用于执行全部脚本
2.case文件夹里面用例参考
# coding:utf-8
import unittest
from selenium import webdriver
import time
class Test1(unittest.TestCase):
@classmethod
def setUpClass(cls):
cls.driver = webdriver.Firefox()
def setUp(self):
self.driver.get(&http://www.cnblogs.com/yoyoketang/&)
def test_01(self):
time.sleep(3)
t = self.driver.title
# 随便写的用例,没写断言
def test_02(self):
time.sleep(3)
t = self.driver.title
h = self.driver.window_handles
# 随便写的用例,没写断言
@classmethod
def tearDownClass(cls):
cls.driver.quit()
if __name__ == &__main__&:
unittest.main()
多线程执行
1.多线程设计思路:
先写一个run的函数
保证for循环能跑的通
在run函数上加个装饰器 @threads(n),n是线程数
2.run_all参考代码
# coding=utf-8
import unittest
from common import HTMLTestRunner
from tomorrow import threads
# python2需要这三行,python3不需要
import sys
reload(sys)
sys.setdefaultencoding('utf8')
# 获取路径
curpath = os.path.dirname(os.path.realpath(__file__))
casepath = os.path.join(curpath, &case&)
reportpath = os.path.join(curpath, &report&)
def add_case(case_path=casepath, rule=&test*.py&):
'''加载所有的测试用例'''
discover = unittest.defaultTestLoader.discover(case_path,
pattern=rule,
top_level_dir=None)
return discover
@threads(3)
def run_case(all_case, report_path=reportpath, nth=0):
'''执行所有的用例, 并把结果写入测试报告'''
report_abspath = os.path.join(report_path, &result%s.html&%nth)
fp = open(report_abspath, &wb&)
runner = HTMLTestRunner.HTMLTestRunner(stream=fp,
title=u'自动化测试报告,测试结果如下:',
description=u'用例执行情况:')
# 调用add_case函数返回值
runner.run(all_case)
fp.close()
if __name__ == &__main__&:
# 用例集合
cases = add_case()
# 之前是批量执行,这里改成for循环执行
for i, j in zip(cases, range(len(list(cases)))):
run_case(i, nth=j)
# 执行用例,生成报告
3.生成报告,这里生成的报告是多个的,每个.py脚本生成一个html的报告,接下来遇到的难点就是合并报告了
如何把多个html报告合并成一个报告呢?
阅读(...) 评论()

我要回帖

更多关于 java多线程通信框架 的文章

 

随机推荐