python+selenium+Jenkins+Firefox集成

目的

利用Jenkins来跑python+selenium编写的脚本,火狐浏览器来展示

本地需要安装的软件

python 下载地址:https://www.python.org/getit/

Selenium自动化测试 基于 Python 语言

作者:[印度]冈迪察.U(Unmesh Gundecha )

当当 广告

购买

我下载的版本为:

可根据情况自行选择 1.特别要注意选上pip和Add python.exe to Path,然后一路点“Next”即可完成安装。 2.默认会安装到C:\Python3.6.1目录下,然后打开命令提示符窗口,敲入python后,会出现两种情况: 情况一,安装成功:

情况二,安装失败: ‘python’不是内部或外部命令,也不是可运行的程序或批处理文件。

侏罗纪世界2

主演:克里斯·帕拉特 / 布莱丝·达拉斯·霍华德 / 泰德·拉文

猫眼电影演出 广告

购买

这是因为Windows会根据一个Path的环境变量设定的路径去查找python.exe,如果没找到,就会报错。如果在安装时漏掉了勾选Add python.exe to Path,那就要手动把python.exe所在的路径C:\Python3.6.1添加到Path中。 环境配置:计算机右键属性-高级系统管理-环境变量-path selenium 一、在C:\python3.6.1\Scripts打开cmd窗口输入:pip3(有一大串内容出现)

二、cmd输入指令安装selenium:pip3 install selenium==2.53.6 如果不录入版本,默认安装最高级版本 三、验证selenium 在程序中能正确引用,不报错

Jenkins 请参照上一篇文章

脚本

一、访问百度

import unittest from selenium import webdriver from time import sleep class BaiduTest(unittest.TestCase): """百度首页搜索测试用例""" def setUp(self): #logger.info('=======Yest case:init========') #驱动目录 options = webdriver.ChromeOptions() options.add_experimental_option("excludeSwitches",["ignore-certificate-errors"]) path = "C:\Users\lad\AppData\Local\Google\Chrome\Application\chromedriver.exe" self.driver = webdriver.Firefox() self.driver.implicitly_wait(30) self.base_url = u"http://www.baidu.com"

def test_baidu_search(self): #logger.info('=======Yest case:search baidu========') driver = self.driver print(u"开始[case_0001]百度搜索") driver.get(self.base_url) # 验证标题 self.assertEqual(driver.title, u"百度一下,你就知道") driver.find_element_by_id("kw").clear() driver.find_element_by_id("kw").send_keys(u"开源测试你懂的") driver.find_element_by_id("su").click() sleep(3) # 验证搜索结果标题 self.assertEqual(driver.title, u"开源测试你懂的_百度搜索") def tearDown(self): #logger.info('=======Yest case:quit========') self.driver.quit()

二、运行脚本

htmlPath = u"C:\\base\\demo\\testReport.html" fp = open(htmlPath, "wb") runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title=u"百度测试", description=u"测试用例结果") runner.run(suite) fp.close() #发送邮件 senfemail_fujian.sendmail(htmlPath)

三、生成报告的脚本

此文档官网可以下载到,python3可能需要更改一下 四、发送邮件的脚本

import smtplib from email.mime.text import MIMEText from email.header import Header from email.mime.multipart import MIMEMultipart def sendmail(mailtile): print("发送HTML邮件示例") # 邮件发送者 sender = "XXXX" # 邮件接收地址列表,中间逗号隔开 receivers = "XXXXX" #抄送者 acc = "XXXXX" # 发送内容构建 # html标识发送内容为文本格式 msg = MIMEMultipart() #发送者 msg["From"] = sender #接受者 msg["To"] = receivers #抄送者 msg['Cc'] = acc # 构建邮件标题 msg["Subject"] = Header("搜索百度的测试报告", "utf-8") # 构建邮件正文内容 msg.attach(MIMEText("附件为报告的内容,望多多指教!", "plain", "utf-8")) # 构造附件,多个附件同理 #读取xlsx文件作为附件,open()要带参数'rb',使文件变成二进制格式,从而使'base64'编码产生作用,否则附件打开乱码 attach1 = MIMEText(open(mailtile, 'rb').read(), "base64", "utf-8") attach1["Content-Type"] = "application/octet-stream" # 这里filename随意写,将会在邮件中显示 attach1["Content-Disposition"] = "attrachment;filename="+mailtile+"" # 关联附件到邮件中 msg.attach(attach1) # smtp服务 smtpserver = "smtp.163.com" smtpport = 25 # 发送人邮件用户名或专用于smtp账户用户名 username = "XXXXX" # 发送人邮件密码或专用于smtp账户的密码 password = "*****" # 构建smtp对象 smtp = smtplib.SMTP() # 连接到smtp服务 con = smtp.connect(smtpserver, smtpport) print("连接结果: ", con) # 登录smtp服务 log = smtp.login(username, password) print("登录结果:", log) # 发送邮件 print(receivers) res = smtp.sendmail(sender, receivers.split(','), msg.as_string()) print("邮件发送结果: ", res) # 退出 smtp.quit() print("send email finish")

Jenkins中的配置

写上项目名称,剩下主要的就是构建

发送邮件也可以在Jenkins中配置

运行的结果

蓝色的标识成功,红色的标识失败且成功的可以收到邮件

作者:测试的旅途中 链接:https://www.jianshu.com/p/a9787d4aafcc 來源:简书 简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

原文发布于微信公众号 - 开源优测(DeepTest)

原文发表时间:2018-06-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Jerry的SAP技术分享

SAP CRM和C4C的内容管理(Content Management)

SAP CRM使用Attachments这个UI给用户提供内容管理的功能。通过新建按钮可以上传本地文档到CRM系统:

59630
来自专栏菩提树下的杨过

MRTG FOR WINDOWS 安装指南

MRTG(Multi Router Traffic Grapher),通常讲是一个监控网络链路流量负载的开源软件,它可以从所有运行SNMP协议的设备上(包括服务...

357100
来自专栏互扯程序

Linux常用Shell脚本,值得学习及收藏

在运维中,尤其是linux运维,都知道脚本的重要性,脚本会让我们的 运维事半功倍,所以学会写脚本是我们每个linux运维必须学会的一门功课,这里收藏linux运...

28410
来自专栏醉梦轩

Ubuntu安装Proxychains

1.4K30
来自专栏张戈的专栏

WordPress启用memcached动态缓存以及报错解决

张戈博客目前用的是Nginx 的 fastcgi 缓存方案,属于纯净态缓存模式,所以前台登录态什么的基本都没了。如果要兼顾前台登录态,又想速度快,有没有解决方案...

61190
来自专栏格子的个人博客

CentOS7下安装Mesos教程

Mesos是根据Linux内核相同原则而创建的,而不同点仅是在于抽象的层面。Mesos内核运行在每一个机器上,同时通过 API 为各种应用提供跨数据中心和云的资...

16220
来自专栏IT笔记

MVC与三层架构有什么区别

首先,声明一下,三层是三层,MVC是MVC,这俩是毫无关系的。 三层是从整个应用程序架构的角度来分的三层(如果程序需要,还可以分多层)。 三层架构通常包括表示层...

38080
来自专栏Java后端技术栈

QQ登录网站接入功能实现--非官方文档搬运

最近第一次使用QQ登录功能,期间遇到这种问题,在网上找了很多资料,大多都是官方的搬运,并没有真正的干料,可能是个人能力问题,遇到了各种麻烦,折腾了几天,最终弄好...

18140
来自专栏Java编程技术

UML建模(组件图)

组件图是为了展示组元(components),组元提供的接口(provided inerfaces)和需要调用的接口(required interfaces),...

91720
来自专栏晨星先生的自留地

日志攻防初探之windows篇(iis日志介绍)

47760

扫码关注云+社区

领取腾讯云代金券