• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

pythonselenium的框架构建

python 搞代码 3年前 (2022-02-20) 9次浏览 已收录 0个评论

设计思路
本文整顿演绎以往的工作中用到的货色,现汇总成根底测试框架提供分享。

框架采纳python3 + selenium3 + PO + yaml + ddt + unittest等技术编写成根底测试框架,能适应日常测试工作须要。

1、应用Page Object模式将页面定位和业务操作离开,拆散测试对象(元素对象)和测试脚本(用例脚本),一个页面建一个对象类,进步用例的可维护性;

2、应用yaml治理页面控件元素数据和测试用例数据。例如元素ID等发生变化时,不须要去批改测试代码,只须要在对应的页面元素yaml文件中批改即可;

3、分模块治理,互不影响,随时组装,即拿即用。
测试框架分层设计

把常见的操作和查找封装成根底类,不论是什么产品,可间接拿来复用
业务层次要是封装对象页面类,一个页面建一个类,业务层页面继承根底层
用例层针对产品页面性能进行结构摸拟执行测试
框架层提供根底组件,撑持整个流程执行及性能扩大,给用例层提供各页面的元素数据、用例测试数据,测试报告输入等
测试框架目录构造

如下思维导图目录构造介绍:

编写用例办法
login.yaml
例如,咱们要新增登录性能测试用例:

首先,只需在testyaml目录下新增一个页面对象yaml文件,参考login.yaml格局编写即可。这些文件是提供给封装页面对象类调用并执行定位辨认操作。

login_data.yaml
其次,在testdata目录下新增一个login_data.yaml文件提供给登录接口传参的测试数据,编写格局参考login_data.yaml文件。

loginPage.py
而后,在page_obj目录下新增一个loginPage.py文件,是用来封装登录页面对象类,执行登录测试流程操作。

login_sta.py
最初,在testcase目录下创立测试用例文件login_sta.py,采纳ddt数据驱动读取yaml测试数据文件

综上所述,编写用例办法只须要按以上四个步骤创立->编写即可。

执行如下主程序,可看输入的理论后果。
common
蕴含:根本的公共办法类,比方HTML报告、Log解决、发送邮件、根本页面对象等

其中pageObject外面是对各个测试零碎操作页面的一个封装,当前用例的办法间接继承即可。可屡次调用,保护起来比拟不便。

conf
根本的零碎参数配置信息,能够蕴含url,正确用户的信息,简略日志级别,某些输入地位,邮件信息等

data
对于数据驱动或者其余测试用例中须要测试的数据,之后测试用例流程不变,能够间接在文档中进行Axitrader返佣https://www.kaifx.cn/broker/a…。临时采纳excel。也能够采纳csv,xml等等办法

log
日志输入,临时包含了 log输入,htmlreport输入以及img的保留。

test
其中蕴含testcase以及testsuite两个模块

testcase 负责编写测试用例如果某个性能有多个py文件编写能够再新建一个目录。
testsuite 就是测试套件,能够按需要进行抉择须要的测试项(蕴含测试用例以及测试类)
留神:应用ddt则不能够再应用addTest形式独自增加测试用例了。
(1)首先导入 webdriver 与 Keys 模块。selenium.webdriver 模块蕴含驱动浏览器的实现办法。 反对Firefox、Chrome、IE 浏览器。 Keys 模块蕴含键盘中的键,诸如F1,ALT 等。
from selenium import webdriver
  from selenium.webdriver.common.keys import Keys
  (2)接下来,创立 Chrome WebDriver 实例。
driver = webdriver.Chrome()
  driver.get 办法会在浏览器中关上指定的 URL 页面。 当页面齐全加载后(会触发 “onload” 事件),才会把控制权交给咱们写的测试脚本。
  留神: 如果如果加载的页面,应用了很多 AJAX 申请,那么 WebDriver 可能不晓得齐全加载的工夫点。
  (3)而后是一个断言,测试网页题目(即 H5 中的 <title> 标签)中是否蕴含 “Python” 字符串:
assert ‘Python’ in driver.title
  (4) WebDriver 提供了多种查找元素的办法,形如 应用 find_element_by_*。 例如,这里应用了 find_element_by_name 办法通过其标签的 name 属性,来查找输入框元素 。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:pythonselenium的框架构建

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址