51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1836|回复: 0
打印 上一主题 下一主题

基于selenium的pyse自动化测试框架

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2018-5-4 16:32:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
介绍:

pyse基于selenium(webdriver)进行了简单的二次封装,比selenium所提供的方法操作更简洁。



特点:

默认使用CSS定位,同时支持多种定位方法(id\name\class\link_text\xpath\css)。
本框架只是对selenium(webdriver)原生方法进行了简单的封装,精简为大约30个方法,这些方法基本能够胜
任于我们的web自动化测试。
以测试类为单位,自动打开和关闭浏览器,减少浏览器的打开/关闭次数,节省时间。
自动生成/report/目录,以及HTML测试报告生成。
自带断言方法,断言title、URL 和 text。


安装说明:

Python3.5+ : https://www.python.org/
Selenium3.6.0+ : https://pypi.python.org/pypi/selenium
进入pyse/目录,执行:

> python setup.py install


例子:

请查看demo/test_case.py目录

复制代码
  1. import pyse

  2. class BaiduTest(pyse.TestCase):

  3.     def test_baidu(self):
  4.         ''' baidu search key : pyse '''
  5.         self.open("https://www.baidu.com/")
  6.         self.type("#kw", "pyse")
  7.         self.click("#su")
  8.         self.assertTitle("pyse_百度搜索")

  9. if __name__ == '__main__':
  10.     runner = pyse.TestRunner()
  11.     runner.run()
复制代码

复制代码
运行测试用例说明:

测试用例文件命名必须以“__test__”开头。
默认情况下使用 __Chrome__ 浏览器运行测试用例。
元素定位方式默认使用 CSS 语法 `#kw`, 也可以显示的使用 `css=>#kw`。
pyse的TestCase类中默认封装了`assertTitle`、`assertUrl` 和 `assertText`等断言。
`TestRunner()` 默认匹配当前目录下"test*.py"的文件并执行。当然也可以指定测试目录,例如:TestRunner
("path/you/project/test_case/") # 注意用斜线"/"表示路径。
执行`run()`方法运行测试用例并生成测试报告,在调试测试用例过程中可以使用 `debug()` 方法将不会生成
HTML测试报告。

支持的浏览器及驱动:

指定运行的浏览器:

复制代码
import pyse

class YouTest(pyse.TestCase):

    @classmethod
    def setUpClass(cls):
        cls.driver = Pyse("chrome")

    def test_case(self):
        #……
复制代码


支持的浏览器:

复制代码
cls.driver = Pyse("firefox") #Firefox
cls.driver = Pyse("chrome") # Chrome
cls.driver = Pyse("ie") #IE
cls.driver = Pyse("opera") #Opera
cls.driver = Pyse("edge") #Edge
cls.driver = Pyse("chrome_headless") #Chrome headless模式
复制代码


浏览器驱动下载地址:

geckodriver(Firefox):https://github.com/mozilla/geckodriver/releases

Chromedriver(Chrome):https://sites.google.com/a/chromium.org/chromedriver/home

IEDriverServer(IE):http://selenium-release.storage.googleapis.com/index.html

operadriver(Opera):https://github.com/operasoftware/operachromiumdriver/releases

MicrosoftWebDriver(Edge):https://developer.microsoft.com/ ... dge/tools/webdriver

==========================================================

#### 元素定位:

pyse支持多种定位方式,id、name、class、link text、xpath和css。把定位方法与定位内容一体,写起更加简洁。

<form id="form" class="fm" action="/s" name="f">
    <span class="bg s_ipt_wr quickdelete-wrap">
        <input id="kw" class="s_ipt" autocomplete="off" maxlength="255" value="" name="wd">


定位方式(推荐使用 CSS):

复制代码
  1. # 默认支持CSS语法
  2. driver.type(".s_ipt","pyse") #css
  3. driver.type("#su","pyse") #css

  4. driver.type("id=>kw", "pyse") #id

  5. driver.type("class=>s_ipt", "pyse") #class定位

  6. driver.type("name=>wd", "pyse") #name

  7. driver.type("xpath=>//*[@class='s_ipt']","pyse") #xpath
  8. driver.type("xpath=>//*[@id='kw']","pyse") #xpath

  9. driver.click_text("link_text=>新闻") #link text
复制代码

(点击百度首页上的"新闻"链接)
复制代码


==========================================================

css选择器参考手册:
http://www.w3school.com.cn/cssref/css_selectors.asp

#### 测试报告


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-27 02:06 , Processed in 0.064197 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表