Web UI自动化(ubuntu系统,python3.6)

在ubuntu系统中搭建python3.6.4+selenium+chrome,实现无界面上运行web前端自动化测试

一、ubuntu系统16.04自带了python2.7和python3.5 ,需要安装python3.6.4步骤:

1、使用 wget 命令下载 Python3.6.4 安装包:wget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz

2、使用 tar 命令对 Python3.6.4 进行解压:tar zxvf Python-3.6.4.tgz

3、进入 Python-3.6.4 目录:cd Python-3.6.4

4、编译安装,执行 ./configure 脚本:./configure

5、执行安装:make make install

安装完成后使用python3.6 检查是否安装成功,然后使用pip3.6 install selenium 如果能正常安装,说明python3.6 安装完成

如果pip安装失败, 提示:pip is configured with locations that require TLS/SSL .......

1.在使用pip的时候需要ssl,通过命令先安装openssl 和 libssl-dev:apt-get install openssl apt-get install libssl-dev

2.cd Python-3.6.4

3.修改Modules/Setup

vim Modules/Setup
#修改结果如下:
# Socket module helper for socket(2)
_socket socketmodule.c timemodule.c

# Socket module helper for SSL support; you must comment out the other
# socket line above, and possibly edit the SSL variable:
#SSL=/usr/local/ssl
_ssl _ssl.c \
-DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
-L$(SSL)/lib -lssl -lcrypto

4.再次进行 ./configure --with-ssl

5.执行安装:make make install

二、安装Chrome

下载命令行chrome: wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb

通过命令安装: sudo dpkg -i google-chrome-stable_current_amd64.deb

也可参考其他方式进行安装

三、安装Chromedriver

在这里 找到自己需要的chromedrive (匹配Chrome版本)

解压后,传入ubuntu系统中

配置chromedriver为可执行,参考如下:

sudo mv -f chromedriver /usr/local/share/chromedriver

sudo ln -s /usr/local/share/chromedriver /usr/local/bin/chromedriver

sudo ln -s /usr/local/share/chromedriver /usr/bin/chromedriver

进入到/usr/bin 目录下 find chromedriver 是否存在

不存在 sudo mv chromedriver /usr/bin 将文件移到这个目录下

修改chromedriver的权限 sudo chmod a+x chromedriver

四、安装Xvfb(可参考这里)

使用 命令安装Xvfb sudo apt-get update && sudo apt-get install -y xfonts-100dpi xfonts-75dpi xfonts-scalable xfonts-cyrillic Xvfb x11-apps imagemagick firefox google-chrome-stable

测试是否安装成功:

1、启动Xvfb服务 : Xvfb -ac :7 -screen 0 1280x1024x8 (注意这个是x, 不是* 哦)

2、export DISPLAY=:7

/usr/bin/google-chrome-stable http://www.mimvp.com // chrome 浏览www.mimvp.com

如果运行完后,出现:

Xlib: extension "RANDR" missing on display ":7"

you made it. 这是个无关紧要的信息,之前我试图解决掉它,没有成功。最后我在运行selenium脚本后,完全没有出现这个信息,脚本执行很正常,所以现在我把它当做是安装成功的信息。

这种方式启动的服务(第二天,通过这种方式启动的服务就关闭了,关闭操作不清楚后续研究)

创建一个服务,先 touch /etc/init.d/Xvfb

脚本如下:

#! /bin/bash
if [ -z "$1" ]; then
echo "`basename $0` {start|stop}"
exit
fi

case "$1" in
start)
/usr/bin/Xvfb :7 -ac -screen 0 1024x768x8 &
;;
stop)
killall Xvfb
;;
esac
修改脚本权限,启动服务:

chmod +x /etc/init.d/Xvfb
chkconfig Xvfb on
service Xvfb start

停止服务的话就是: service Xvfb stop

五、测试脚本

通过命令先安装pyvirtualdisplay:sudo pip install pyvirtualdisplay

脚本参考如下:

from pyvirtualdisplay import Display
from selenium import webdriver
import time
display = Display(visible=0, size=(1024, 768))
display.start()
driver = webdriver.Chrome()
time.sleep(1)
driver.get(‘http://www.baidu.com‘)
time.sleep(10)
print (driver.page_source)
driver.save_screenshot(‘/home/test/test.png‘)
time.sleep(2)
driver.close()
driver.quit()
display.stop()
使用python3.6 +脚本文件名,运行脚本

原文地址:https://www.cnblogs.com/lxf3247/p/12342521.html

时间: 2024-10-27 13:52:54

Web UI自动化(ubuntu系统,python3.6)的相关文章

为什么要做自动化测试、web/UI 自动化条件和使用范围

一.为什么进行自动化测试? 缩短测试周期 避免人为出错 测试信息存储(自动化代码) 轻易获取覆盖率 其他 二.web/UI 自动化条件和使用范围 1. 前提条件 手工测试已经完成,后期在不影响进度的前提下逐渐实现自动化 项目周期长,重复性的工作都交给机器去实现 需求稳定,项目变动不大 自动化测试脚本复杂度比较低 可重复利用 2. 使用自动化测试的场景 频繁的回归测试 冒烟测试 传统行业需求变动不大,应用频繁 性能测试 *******请大家尊重原创,如要转载,请注明出处:转载自:https://w

Python Selenium 搭建Web UI自动化

Python搭建UI自动化环境 下载Python3 Python官网 PyCharm 环境配置 安装Python 勾选Add Python to PATH,一直下一步. 验证:CMD输入Python 下载Chrome Driver 点击下载chromedriver 将驱动放入Python根目录下 安装PyCharm 转载:安装教程 安装Selenium 打开PyCharm 新建Python File 点击面板底部 Terminal 输入pip install selenium 安装.pip li

Ubuntu系统Python3相关环境或模块安装

前提:一般用户安装都命令前都需要sudo ,或者在root用户下 1.Ubuntu 16.04 安装PyCharm Ubuntu 16.04 安装PyCharm 本文通过第三方源安装PyCharm,好处是升级方便. 添加源:   $ sudo add-apt-repository ppa:mystic-mirage/pycharm 安装收费的专业版:   $ sudo apt-get update   $ sudo apt-get install pycharm 安装免费的社区版:   $ su

这两个月内 web UI 自动化的感悟

1.我们的后台不稳定(所以这里建议还是选一个稳定的后台) 2.对我们的后台,我遇到过一个问题就是,如果添加商品成功,我该如何去验证商品保存成功 A.我想到的第一种方法是 查询数据库(可这还是webUI吗?) B.正好添加成功的数据会在第一页显示出来,所以我对首页的第一条数据做了判断 整个测试做下来的感觉是  对公司实用性不大,但是对自身肯定是好的,起码提高了自己写代码的水平以及自己知道了整个自动化UI测试的流程 我在看完虫师的 http://www.cnblogs.com/fnng/p/5410

[原创] Web UI自动化应用测试框架实践 - 概览

之前为我们部门做的一个UI框架.不能纯粹解读为框架,主要是做了一些简单的分层设计,以解决稳定性.降低复杂性.提升可维护性以及快速构建测试用例等实际问题. 主要部分:1. 测试数据.主要提供测试类库需要用到的数据,前端做到数据驱动.2. 测试服务.测试服务类主要提供一组API,达到重用的目的.3. 页面封装.对具体的Web页面进行抽象和封装,提供统一的接口,降低逻辑的编写门槛,组件重用以及更好的可维护和可读性. 4. Selenium Web Driver.底层用的WebDriver.

[原创] Web UI 自动化日期控件的处理

序 在构建自动化套件的过程中,日期操作是一件很重要也很频繁的事情.有的日期控件的div层级结构复杂,同一个类型的日期控件在多个子系统中的表现形式也大相径庭.多数工程师为了避免重复的工作,会封装抽象一个方法或公共的库,还有部分会封装成单独的日期类库. 控件 下面是去啊的日期控件 下面是相关的HTML 当然,有的日期控件元素的id为对应的日期. 代码逻辑 针对这种双日期的格式,我们如何在代码中进行处理输入? 1.      输入目标日期. 2.      判断目标日期与当前日期的差值 -      

[python]pytest实现WEB UI自动化

前言:其实这篇写的是pytest的测试框架运用,实现自动化和https://www.cnblogs.com/Jack-cx/p/9357658.html 原理一致 1.为啥不用unittest Pytest相对Unittest更加灵活一点,unittest需要写类继承unittest.TestCase类,pytest不需要可写可不写类,也支持生成html测试报告 2.创建工程 &对比上面robot的工程,增加一个PyUnit目录和report,这里主要放单元测试框架其他实现思路一致,report

python WEB UI自动化在日期框中动态输入当前日期

要在日期框中输入当前日期,如下图 代码为 本想用最简单的方法,直接用sendkeys发送当前日期,如下: current_time=time.strftime('%Y-%m-%d',time.localtime(time.time())) driver.find_element_by_id("id_start").send_keys(current_time) 但是在实际操作时,发现发送完成后,写入的不是我的东西,而是又多了一个日期,不知道为什么.有空研究下. 就用js来操作,直接给出

Selenium系列(十四) - Web UI 自动化基础实战(1)

如果你还想从头学起Selenium,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1680176.html 其次,如果你不懂前端基础知识,需要自己去补充哦,博主暂时没有总结(虽然我也会,所以我学selenium就不用复习前端了哈哈哈...) 注意,目前的实战都是流水账式写的,后面才会结合框架+PO模式 目的是为了掌握所学的Selenium基础 实战题目 访问:https://m.weibo.cn/ 点击:大家都在搜 点击:微博热搜榜