700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > linux firefox xvfb 持续集成:采用Xvfb+Selenium+Firefox搭建linux服务器下的自动化测试环境...

linux firefox xvfb 持续集成:采用Xvfb+Selenium+Firefox搭建linux服务器下的自动化测试环境...

时间:2021-10-25 20:57:43

相关推荐

linux firefox xvfb 持续集成:采用Xvfb+Selenium+Firefox搭建linux服务器下的自动化测试环境...

自动化测试属于软件测试的一部分,QTP、LoadRunner等都可以编写自动化测试脚本,但是QTP、LoadRunner等工具毕竟还需要人工操作,在持续集成思想下,软件应该自动发布并且自动测试,这样可以加快软件的开发测试周期,及时发现软件错误。持续集成应该包括代码的自动化检查、版本的自动化发布、以及程序的自动化测试。在自动化测试之外,再辅助以人工测试。

在我负责的项目中,代码自动化检查采用了SVN+CheckStyle实现,前文已有介绍,版本自动化发布采用了Jenkins或者crontab+Ant脚本自动发布,而自动化测试则采用了Xvfb+Selenium+Firefox实现,该框架主要实现对BS架构程序的测试,如采用Appnium则也可以实现对手机软件的测试,如结合python或其他脚本语言,则可以将测试结果直接发布到Jira等任务平台上,实现持续集成全过程管理。

因为BS架构程序客户端采用浏览器,所以多数是在Windows环境下搭建自动化环境,但事实上目前linux已经成为主流服务器,而服务器版本linux是没有桌面的,如果执行Firefox会出现No display specific的错误。以下即是在服务器版本linux上搭建无图形的自动化测试环境的过程:

1、安装Xvfb[[emailprotected]~]cd/tmp

[[emailprotected]tmp]wget/6.5/os/x86_64/Packages/xorg-x11-server-Xvfb-1.13.0-23.el6.centos.x86_64.rpm

[[emailprotected]tmp]yumlocalinstallxorg-x11-server-Xvfb-1.13.0-23.el6.centos.x86_64.rpm

运行Xvfb命令:[[emailprotected]tmp]sudoXvfb:10-screen01024x768x24-ac-nolistentcp-extensionRANDR&

运行起来后如下,表明无图形Xvfb已经安装成功:[1]26955

[[emailprotected]tmp]#Initializingbuilt-inextensionGenericEventExtension

Initializingbuilt-inextensionSHAPE

Initializingbuilt-inextensionMIT-SHM

Initializingbuilt-inextensionXInputExtension

Initializingbuilt-inextensionXTEST

Initializingbuilt-inextensionBIG-REQUESTS

Initializingbuilt-inextensionSYNC

Initializingbuilt-inextensionXKEYBOARD

Initializingbuilt-inextensionXC-MISC

Initializingbuilt-inextensionSECURITY

Initializingbuilt-inextensionXINERAMA

Initializingbuilt-inextensionXFIXES

Initializingbuilt-inextensionRENDER

Initializingbuilt-inextensionRANDR

Initializingbuilt-inextensionCOMPOSITE

Initializingbuilt-inextensionDAMAGE

Initializingbuilt-inextensionMIT-SCREEN-SAVER

Initializingbuilt-inextensionDOUBLE-BUFFER

Initializingbuilt-inextensionRECORD

Initializingbuilt-inextensionDPMS

Initializingbuilt-inextensionX-Resource

Initializingbuilt-inextensionXVideo

Initializingbuilt-inextensionXVideo-MotionCompensation

Initializingbuilt-inextensionSELinuxInitializingbuilt-inextensionGLX

2、安装Firefox

其次,拷贝到 /usr/local目录下并解压:[[emailprotected]tmp]mvFirefox**.tar.gz/usr/local

[[emailprotected]tmp]cd/usr/local/

[[emailprotected]local]tar-jxvfFirefox**.tar.gz

[[emailprotected]local]cdFirefox

[[emailprotected]Firefox]exportDISPLAY=:10

[[emailprotected]Firefox]./firefox-new-&

(1)运行后,发现如下错误:(crashreporter:26367):Pango-WARNING**:failedtochooseafont,expectuglyoutput.

engine-type=‘PangoRenderFc‘,script=‘common‘

因此需要安装dejavu相关字体:[[emailprotected]Firefox]yuminstalldejavu-sans-fonts.noarchdejavu-serif-fonts.noarch

(2)重新执行后,仍然有错误:process26494:D-Buslibraryappearstobeincorrectlysetup;failedtoreadmachineuuid:

Failedtoopen"/var/lib/dbus/machine-id":

Seethemanualpagefordbus-uuidgentocorrectthisissue.

D-Busnotbuiltwith-rdynamicsounabletoprintabacktrace

需要安装dbus,然后生成机器码:[[emailprotected]Firefox]yuminstalldbus

[[emailprotected]Firefox]dbus-uuidgen>/var/lib/dbus/machine-id

再次执行后发现已经可以正常启动:[[emailprotected]Firefox]ps-ef|grepfirefox

root2721827215017:36pts/300:00:24/usr/bin/firefox-foreground

3、安装PYTHON+SELENIUM

编写自动化测试脚本的方式很多,采用Python和Selenium可以实现各种复杂的自动化测试,因此在我的项目中主要采用Python和Selenium实现自动化测试。

安装PYTHON的方式省略,安装Selenium如下:

[[emailprotected]~]pipinstallselenium

4、验证自动化测试环境[[emailprotected]~]#python

Python2.7.9(default,Feb4,15:09:20)

[GCC4.4.70313(RedHat4.4.7-16)]onlinux2

Type"help","copyright","credits"or"license"formoreinformation.

>>>importselenium

>>>fromseleniumimportwebdriver

>>>mon.keysimportKeys

>>>mon.exceptionsimportNoSuchElementException,TimeoutException

>>>browser=webdriver.Firefox()

>>>browser.get("

>>>t=browser.find_element_by_xpath("//div[contains(@id,‘ftCon‘)]")

>>>t.text

u‘\u624b\u673a\u767e\u5ea6\n\u5feb\u4eba\u4e00\u6b65\n\u767e\u5ea6

\u7cef\u7c73\n\u4e00\u5143\u5927\u9910\n\u628a\u767e\u5ea6\u8bbe\u4e3a\u4e3b\u9875

\u5173\u4e8e\u767e\u5ea6AboutBaidu\n\xa9Baidu

\u4f7f\u7528\u767e\u5ea6\u524d\u5fc5\u8bfb

\u610f\u89c1\u53cd\u9988\u4eacICP\u8bc1030173\u53f7

\n\u4eac\u516c\u7f51\u5b89\u590711000002000001\u53f7‘

如上,已经成功获得百度网站的页面数据,表明测试环境已经搭建成功,可以进行交互式测试。

6、通过Selenium+Firefox实现交互式测试

例如:importselenium

fromseleniumimportwebdriver

mon.exceptionsimportNoSuchElementException,TimeoutException

mon.keysimportKeys

deftestPage():

pages=[1,]

pageTotalNum=1

browser.get(dataUrl)

browser=webdriver.Firefox()

listFoot=browser.find_element_by_class_name("list-foot")

iflistFootisNone:

returnNone

pageTags=listFoot.find_elements_by_tag_name("a")

ifpageTagsisNone:

returnNone

pageTotalNum=len(pageTags)-2

foriinrange(0,pageTotalNum):

nextPage=i+2

ifi

print"%dclick"%nextPage

pageTags[nextPage].click()

pages.append(nextPage)

if__name__==‘__main__‘:

testPage()

通过以上步骤,搭建了linux服务器环境下的自动化测试环境,已经可以帮助项目加快测试进度,减少软件错误,此可供极限编程、敏捷开发的项目团队借鉴。

原文:http://casey./9994043/1763141

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。