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

介绍:

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目录

python 复制代码
import pyse
 
class BaiduTest(pyse.TestCase):
 
    def test_baidu(self):
        ''' baidu search key : pyse '''
        self.open("https://www.baidu.com/")
        self.type("#kw", "pyse")
        self.click("#su")
        self.assertTitle("pyse_百度搜索")
 
if __name__ == '__main__':
    runner = pyse.TestRunner()
    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测试报告。

支持的浏览器及驱动:

指定运行的浏览器:

python 复制代码
import pyse
 
class YouTest(pyse.TestCase):
 
    @classmethod
    def setUpClass(cls):
        cls.driver = Pyse("chrome")
 
    def test_case(self):
        #......

支持的浏览器:

python 复制代码
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/en-us/microsoft-edge/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):

python 复制代码
# 默认支持CSS语法
driver.type(".s_ipt","pyse") #css
driver.type("#su","pyse") #css
 
driver.type("id=>kw", "pyse") #id
 
driver.type("class=>s_ipt", "pyse") #class定位
 
driver.type("name=>wd", "pyse") #name
 
driver.type("xpath=>//*[@class='s_ipt']","pyse") #xpath
driver.type("xpath=>//*[@id='kw']","pyse") #xpath
 
driver.click_text("link_text=>新闻") #link text (点击百度首页上的"新闻"链接)

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

css选择器参考手册:

http://www.w3school.com.cn/cssref/css_selectors.asp

测试报告


【下面是我整理的2023年最全的软件测试工程师学习知识架构体系图】


一、Python编程入门到精通

二、接口自动化项目实战

三、Web自动化项目实战

四、App自动化项目实战

五、一线大厂简历

六、测试开发DevOps体系

七、常用自动化测试工具

八、JMeter性能测试

九、总结(尾部小惊喜)

生命不息,奋斗不止。每一份努力都不会被辜负,只要坚持不懈,终究会有回报。珍惜时间,追求梦想。不忘初心,砥砺前行。你的未来,由你掌握!

生命短暂,时间宝贵,我们无法预知未来会发生什么,但我们可以掌握当下。珍惜每一天,努力奋斗,让自己变得更加强大和优秀。坚定信念,执着追求,成功终将属于你!

只有不断地挑战自己,才能不断地超越自己。坚持追求梦想,勇敢前行,你就会发现奋斗的过程是如此美好而值得。相信自己,你一定可以做到!

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

相关推荐
茶猫_5 小时前
力扣面试题 - 25 二进制数转字符串
c语言·算法·leetcode·职场和发展
霍格沃兹测试开发学社测试人社区8 小时前
提升软件测试报告的质量:Allure2中添加用例失败截图、日志、HTML块和视频的方法
软件测试·测试开发
幽兰的天空9 小时前
默语博主的推荐:探索技术世界的旅程
学习·程序人生·生活·美食·交友·美女·帅哥
Rstln9 小时前
【DP】个人练习-Leetcode-2019. The Score of Students Solving Math Expression
算法·leetcode·职场和发展
游客5209 小时前
Selenium 基本用法入门指南
selenium·测试工具
古人诚不我欺10 小时前
Postman之newman
测试工具·postman
善良的修罗10 小时前
postman 最强内置函数使用集合
测试工具·lua·postman
行則独善其身11 小时前
计算机网络-VPN虚拟专用网络概述
程序人生
陪学12 小时前
百度遭初创企业指控抄袭,维权还是碰瓷?
人工智能·百度·面试·职场和发展·产品运营
zhang-zan12 小时前
nodejs操作selenium-webdriver
前端·javascript·selenium