selenium+python+unittest实现自动化测试(入门篇)

selenium+python+unittest实现自动化测试(入门篇)

2023年6月29日发(作者:)

selenium+python+unittest实现⾃动化测试(⼊门篇)本⽂主要讲解关于selenium⾃动化测试框架的⼊门知识点,教⼤家如何搭建selenium⾃动化测试环境,如何⽤selenium+python+unittest实现web页⾯的⾃动化测试,先来看看selenium、unittest是什么。⼀、selenium、unittest概念Selenium 是⽤于测试 Web 应⽤程序⽤户界⾯ (UI) 的常⽤框架。它是⼀款⽤于运⾏端到端功能测试的超强⼯具。您可以使⽤多个编程语⾔编写测试,并且 Selenium 能够在⼀个或多个浏览器中执⾏这些测试,同时⽀持所有基于web 的管理任务⾃动化。unittest是单元测试框架,不仅适⽤于单元测试,还可以适⽤WEB⾃动化测试⽤例的开发与执⾏,该测试框架可组织执⾏测试⽤例,并且提供了丰富的断⾔⽅法,断⾔,其实就是对测试结果进⾏校验,每⼀个测试⽤例都有⼀个期望结果,实际结果跟期望结果不⼀致,说明执⾏测试⽤例不通过,⾃动化测试也⼀样,需要对测试结果进⾏校验,校验成功,说明⽤例已经通过,最终⽣成测试结果。⼆、环境搭建:安装python:安装python编译器pycharm安装selenium模块:win+r 输⼊cmdpython -m pip install selenium假如⽤的是Chrome浏览器,还需要下载,chromedriver版本与⽀持的Chrome浏览器版本对应如下:下载完成后,拷贝到Chrome浏览器安装⽬录下:随后配置环境变量:三、编写⼀个简单的⾃动化测试脚本好了,环境已经搭建好了,我们开始写测试⽤例,来看⼀下对百度页⾯写⼀个简单的⾃动化测试脚本#coding=utf-8#百度demofrom selenium import webdriverimport time#单元测试框架,使⽤该模块,我们可以对⽤例进⾏组织和运⾏,例如如下的BaiduTestCase类继承se,该类执⾏会把test开头的⽅法当成⼀个测试⽤例去执⾏import unittestclass BaiduTestCase(se): def setUp(self): print('开始执⾏测试⽤例:') url = '' = ()#选择⾕歌浏览器 (url)#打开百度页⾯ def test_bubutton(self): _element_by_id('kw').clear() _element_by_id('kw').send_keys('软件测试')#搜索框输⼊内容 _element_by_id('su').click()#点击百度按钮 (2) _screenshot('D:/')#截图

def tearDown(self): print('⼀条⽤例执⾏完成。') ()#退出浏览器

if __name__=='__main__': ()通过上⾯的⼀段代码我们就可以实现跳转到百度页⾯,输⼊‘软件测试’,点击百度按钮并且搜索,设置停留在搜索结果页⾯2秒钟,随后截图放到设置的路径,是不是觉得挺简单的呢,但是想要学习更多的⾃动化测试知识,还是需要更多地熟悉selenium、unittest的api。三、熟悉⼀些常⽤的元素定位⽅法、操作⽅法常⽤元素定位⽅法:1、id定位: find_element_by_id()举例:进⼊浏览器,按f12,定位元素id如下如步骤:2、name定位: find_element_by_name()3、class定位:find_element_by_class_name()4、link定位:find_element_by_link_text()4、link定位:find_element_by_link_text()5、partial_link定位:find_element_by_partial_link_text()6、xpath定位:find_element_by_xpath()7、CSS定位:find_element_by_css_selector()操作⽅法:clear 清除元素的内容send_keys 模拟按键输⼊click 点击元素submit 提交表单size 获取元素的尺⼨text 获取元素的⽂本get_attribute(name) 获取属性值location 获取元素坐标,先找到要获取的元素,再调⽤该⽅法page_source 返回页⾯源码 返回页⾯标题current_url 获取当前页⾯的URLis_displayed() 设置该元素是否可见is_enabled() 判断元素是否被使⽤is_selected() 判断元素是否被选中tag_name 返回元素的tagNamecontext_click(elem) 右击⿏标点击元素elem,另存为等⾏为double_click(elem) 双击⿏标点击元素elem,地图web可实现放⼤功能drag_and_drop(source,target) 拖动⿏标,源元素按下左键移动⾄⽬标元素释放move_to_element(elem) ⿏标移动到⼀个元素上click_and_hold(elem) 按下⿏标左键在⼀个元素上perform() 在通过调⽤该函数执⾏ActionChains中存储⾏为send_keys() 按下回车键send_keys() 按下Tab制表键send_keys() 按下空格键spacesend_keys() 按下回退键Escsend_keys(_SPACE) 按下删除键BackSpacesend_keys() 按下shift键send_keys(L) 按下Ctrl键send_keys(_DOWN) 按下⿏标光标向下按键send_keys(L,‘a’) 组合键全选Ctrl+Asend_keys(L,‘c’) 组合键复制Ctrl+Csend_keys(L,‘x’) 组合键剪切Ctrl+Xsend_keys(L,‘v’) 组合键粘贴Ctrl+Vunittest常⽤断⾔⽅法:assertLocation(判断当前是在正确的页⾯)、assertTitle(检查当前页⾯的 title 是否正确)、assertValue(检查 input 的值, checkbox 或 radio,有值为”on”⽆为”off”)、 assertSelected(检查 select 的下拉菜单中选中是否正确)、 assertSelectedOptions(检查下拉菜单中的选项的是否正确)、 assertText(检查指定元素的⽂本)、 assertTextPresent(检查在当前给⽤户显⽰的页⾯上是否有出现指定的⽂本)、 assertTextNotPresent(检查在当前给⽤户显⽰的页⾯上是否没有出现指定的⽂本)、 assertAttribute(检查当前指定元素的属性的值)、 assertTable(检查 table ⾥的某个 cell 中的值)、 assertEditable(检查指定的 input 是否可以编辑)、 assertNotEditable(检查指定的 input 是否不可以编辑)、 assertAlert(检查是否有产⽣带指定 message 的 alert 对话框)、 verifyTitle验证预期的页⾯标题。 verifyTextPresent验证预期的⽂本是否在页⾯上的某个位置。 verifyElementPresent验证预期的 UI 元素,它的 HTML 标签的定义,是否在当前⽹页上。 verifyText核实预期的⽂本和相应的 HTML 标签是否都存在于页⾯上。 verifyTable验证表的预期内容。 waitForPageToLoad 暂停执⾏,直到预期的新的页⾯加载

发布者:admin,转转请注明出处:http://www.yc00.com/news/1688022137a67542.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信