Centos7.x 使用 selenium + python + jenkins 做UI自动化
一、基础环境准备
1.Chrome + Chrome Driver
https://www.cnblogs.com/TSmagic/p/15671533.html(此篇文章已经介绍)
2.Selenium + Python
pip install selenium
pip show selenium

Python环境安装就不多做介绍啦!
3.Jenkins
https://www.cnblogs.com/TSmagic/p/15080407.html(此篇文章已经介绍)
4.测试代码
# coding=utf-8 # lm-ui—test—demo-博客园
from selenium import webdriver
import time
import unittest class daTestCase(unittest.TestCase):
def setUp(self):
global driver
chromeOptions = webdriver.ChromeOptions() chromeOptions.add_argument('--headless') #浏览器无窗口加载
chromeOptions.add_argument('--disable-gpu') #不开启GPU加速 """
解决报错:
selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally
(unknown error: DevToolsActivePort file doesn't exist)
"""
chromeOptions.add_argument('--disable-dev-shm-usage') #禁止
chromeOptions.add_argument('--no-sandbox')#以根用户打身份运行Chrome,使用-no-sandbox标记重新运行Chrome #其它设置(可选):
chromeOptions.add_argument('--hide-scrollbars') #隐藏滚动条, 应对一些特殊页面
chromeOptions.add_argument('blink-settings=imagesEnabled=false') #不加载图片, 提升速度 #创建driver对象
#chrome_options=chromeOptions加载设置
#executable_path="/usr/bin/chromedriver"指定webdriver路径(可选)
driver = webdriver.Chrome(chrome_options=chromeOptions,executable_path="/usr/bin/chromedriver")
print(u"加载驱动完成..")
driver.get("你的测试地址")
print(u"加载页面完成..")
time.sleep(2)
#self.driver.maximize_window() # 浏览器全屏显示 def test_login1(self):
global driver
driver.find_element_by_xpath("//input[@placeholder='请输入账号']").send_keys("daui")
driver.find_element_by_xpath("//input[@placeholder='请输入密码']").send_keys("Qwe123456")
driver.find_element_by_xpath("//*[@id=\"app\"]/div/div[5]/div/div/div/div[6]/button").click()
#self.driver.save_screenshot('D:/1.png') # 截图
print(u"case1:正确账号密码登录成功") def test_login2(self):
global driver
driver.find_element_by_xpath("//input[@placeholder='请输入账号']").send_keys("111st")
driver.find_element_by_xpath("//input[@placeholder='请输入密码']").send_keys("Qwe123456")
driver.find_element_by_xpath("//*[@id=\"app\"]/div/div[5]/div/div/div/div[6]/button").click()
#self.driver.save_screenshot('D:/2.png') # 截图
print(u"case2:账号错误登录失败") def test_login3(self):
global driver
driver.find_element_by_xpath("//input[@placeholder='请输入账号']").send_keys("daui")
driver.find_element_by_xpath("//input[@placeholder='请输入密码']").send_keys("1qwe123")
driver.find_element_by_xpath("//*[@id=\"app\"]/div/div[5]/div/div/div/div[6]/button").click()
#self.driver.save_screenshot('D:/3.png') # 截图
print(u"case3:密码错误登录失败") def tearDown(self):
global driver
print(u'用例执行完成..')
print(u"")
driver.quit() # 退出浏览器 if __name__ == '__main__':
unittest.main()
5.运行效果

1.png

2.png
to be continued...
Centos7.x 使用 selenium + python + jenkins 做UI自动化的更多相关文章
- Selenium+Python+jenkins搭建web自动化测测试框架
python-3.6.2 chrome 59.0.3071.115 chromedriver 2.9 安装python https://www.python.org/downloads/ (Wind ...
- 使用appium+python做UI自动化的demo
使用appium+python做UI自动化的demo 案例使用的知乎app,下载最新的知乎apk,存在了电脑上,只需要配置本机上app目录,不需要再配置appPackage和appActivity # ...
- 小心!做 UI 自动化一定要跨过这些坑
一 .引子 UI自动化,在移动互联网时代的今天,一直都是在各大测试社区最为火爆的一个TOPIC.甚至在测试同行面前一提起自动化,大家就会自然而然的问:“恩,你们是用的什么框架?appium?还是rob ...
- 如何做ui自动化---步骤详解
第一步: 得到功能测试的常规用例,查看是否可以进行自动化,要明确,自动化不是为了自动化而自动化,自动化是节省人力,主要做回归测试,如果变动性特别大,不建议做自动化,具体可查看其它文章“什么适合做自动化 ...
- 基于python的App UI自动化环境搭建
Android端Ui 自动化环境搭建 一,安装JDK.SDK 二,添加环境变量 Widows:1.系统变量→新建 JAVA_HOME 变量E:\Java\jdk1.7.0 jdk安装目录 2.系统变量 ...
- 如何使用linux+xvfb+python+rfs+firefox+jenkins实现UI自动化
首先说一下背景,在项目中使用windows执行机进行rfs脚本运行时,遇到两个问题: 1.Jenkins的多个slave节点和master的连接通过windows插件去建立,如果出现slave断连,无 ...
- selenium做UI自动化时,模拟鼠标各种操作的ActionChains的用法
1.selenium做自动化的时候,需要模拟鼠标进行单击.双击.右键.拖拽等操作,selenium提供了ActionChains类来进行处理. 2.执行原理:当你调用ActionChains的方法时, ...
- python appium app ui 自动化
1.下载Android-SDK.夜神安卓模拟器.Appium.adb命令执行包并配置环境变量 2.打开夜神 3.打开Appium进行配置,配置如下 4.启动命令,到夜神bin目录下执行 adb con ...
- UI自动化测试之Jenkins配置
前一段时间帮助团队搭建了UI自动化环境,这里将Jenkins环境的一些配置分享给大家. 背景: 团队下半年的目标之一是实现自动化测试,这里要吐槽一下,之前开发的测试平台了,最初的目的是用来做接口自动化 ...
- selenium + python + firefox 测试环境的搭建与配置
对于做UI自动化,如果是纯编写一段自动化测试程序,那么后续的维护成本会较高.这种情况下,借助 selenium 这款自动化系测试工具,辅助于自己编写部分脚本,将是个不错的选择.selenium 本身支 ...
随机推荐
- VS中多字节字符集和UNICODE字符集的使用说明
两者的核心区别: 1.在制作多国语言软件时,使用Unicode(UTF-16,16bits,两个字节).无特殊要求时,还是使用多字节字符集比较好. 2.如果要兼容C编程,只能使用多字节字符集.这里的兼 ...
- C语言中字符数组的赋值和复制
/*C中,字符串,即字符数组的赋值与字符变量.常量.变量的赋值是不同的.初学者总会犯错误. 常见错误如下: 1.定义的时候直接用字符串赋值 char a[10]; char a[10]="h ...
- subplots函数使用说明
1.函数的功能 创建一个画布对象和一组子图对象. 2.函数的声明 fig, axs = subplots(nrows=1, ncols=1, sharex=False, sharey=False, s ...
- unidbgrid显示图片
column设置imageoptions属性,visible=true,设置width
- Oracle coalesce函数 用于选取不为空的字段值
coalesce(A,B) 若A为空则值为B 主流数据库系统都支持COALESCE()函数,这个函数主要用来进行空值处理,其参数格式如下: COALESCE ( expression,value1, ...
- 前端小白启动开源框架vue-element
开发java的我按耐不住想学前端的冲动不想看培训机构的视频,决定自学遇到那种"前端知识图谱"的知识架构,看一眼就完了,不能拿来做入门用入门就得是先把工作环境搭起来,能出活就ok了 ...
- SpringBoot笔记--Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.报错的解决
问题描述 写了SpringBoot代码之后,运行不出来结果,报出这样的一个错误:Failed to configure a DataSource: 'url' attribute is not spe ...
- Android笔记--视图显示
视图显示 视图的宽高设置 方式一:在.xml文件中设置视图的宽和高 通过调用android:layout_width设置视图的宽 通过调用android:layout_height设置视图的高 宽和高 ...
- Android 音视频采集那些事
音视频采集 在整个音视频处理的过程中,位于发送端的音视频采集工作无疑是整个音视频链路的开始.在 Android 或者 IOS 上都有相关的硬件设备--Camera 和麦克风作为输入源.本章我们来分析如 ...
- webpack原理(1):Webpack热更新实现原理代码分析
热更新,主要就是把前端工程 文件变更,即时编译,然后通知到浏览器端,刷新代码. 服务单与客户端通信方式有:ajax 轮询,EventSource.websockt. 客户端刷新一般分为两种: 整体页面 ...