上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 15 下一页
摘要: 借着这个小项目的机会,顺便学一下持续继承,这个听起来高大上的东西。 很多时候我们想实现的就是一旦程序猿提交了代码,就能自动部署,测试就能自动运行,然后自动发布,实现这种流水线的模式,然后减少人工的参与。 我简单理解的持续集成和持续交付就是这个意思。 Jenkins就是一个可以起到串联各个步骤的工具。 阅读全文
posted @ 2020-06-18 15:56 RonyJay 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 在脚本运行中,我们可能需要知道脚本运行到哪个地方了,运行了些什么东西,输出的信息哪些比较严重,如果直接在代码里面print输出很不友好,也不适合进行筛选,所以引进了日志 在日志中,可以通过日志的级别来筛选显示我们需要的信息 日志级别 数值 CRITICAL 50 ERROR 40 WARNING 3 阅读全文
posted @ 2020-06-04 11:17 RonyJay 阅读(346) 评论(0) 推荐(0) 编辑
摘要: 前面一个基础的小框架已经形成,但是依然有很多值得优化的地方,比如在Browser_engine.py中,将browser的类型硬编码写了进去,这在代码里面其实是很不好的一种方式 比如我们需要将Chrome改成Firefox的时候,就需要去改写代码。这篇我们将这些需要改变的值写进配置文件中,然后代码去 阅读全文
posted @ 2020-06-01 15:53 RonyJay 阅读(558) 评论(0) 推荐(0) 编辑
摘要: 新建文件夹test_report,在网上下载HTMLTestRunner.py文件放在Utils包中 注意,如果你使用的是python 3.x的话,HTMLTestRunner.py文件也需要用python 3.x的 接下来,我们改造TestRunner文件 # coding=utf-8 impor 阅读全文
posted @ 2020-06-01 11:30 RonyJay 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 在一个项目中往往不可能只有一个用例,也不可能只有一个页面,所有这里就涉及到用例的组织方式 unittest最核心的四部分是:TestCase,TestSuite,TestFixture,TestRunner 1.TestCase,就是外面常说的用例,记住需要以test开头 2.TestSuite,就 阅读全文
posted @ 2020-05-29 15:52 RonyJay 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 文章太长不看版: setUp(): 每个测试case运行之前运行 tearDown(): 每个测试case运行完之后执行 setUpClass(): 必须使用 @classmethod装饰器, 所有case运行之前只运行一次 tearDownClass(): 必须使用 @classmethod装饰器 阅读全文
posted @ 2020-05-29 14:48 RonyJay 阅读(1018) 评论(0) 推荐(0) 编辑
摘要: 前面都做了那么多铺垫,终于进入正题了,前面的文章把基类写了,流程类写了,本篇便进入断言阶段 判断预期结果和实际结果是否一致 在TestSuites包下,建立test_baidu.py文件 from Base import * from PageObjects import * from Flow i 阅读全文
posted @ 2020-05-28 11:42 RonyJay 阅读(295) 评论(0) 推荐(0) 编辑
摘要: 上篇说到,我们的测试步骤 1,打开 百度 2,搜索关键字selenium 3,点击 知道 4,获取百度知道页第一条链接的href属性 5,对比该属性和预期结果是否一样 其实可以将这5个步骤分成三类 1,打开页面 2,进行测试 3,对比实际结果和预期结果 流程类,就是将测试步骤打包在一起,比如这个用例 阅读全文
posted @ 2020-05-28 11:26 RonyJay 阅读(313) 评论(0) 推荐(0) 编辑
摘要: 今天开始的文章就开始涉及到具体的业务逻辑流程了 我们要测试的一个用例步骤为 1,打开 百度 2,搜索关键字selenium 3,点击 知道 4,获取百度知道页第一条链接的href属性 5,对比该属性和预期结果是否一样 页面类主要是封装在该页面或者该流程上的一些基本方法,以达到复用代码便于维护的目的 阅读全文
posted @ 2020-05-28 10:31 RonyJay 阅读(448) 评论(0) 推荐(0) 编辑
摘要: 在Base包中新建一个BasePage.py 这个文件中,主要封装一些基础的操作,比如说打开url,关闭浏览器,点击,输入,获取元素等与业务逻辑无关的最底层的操作 这个类,可以根据不同的项目需求进行拓展,本文只是举了一个简单的例子 class BasePage(object): def __init 阅读全文
posted @ 2020-05-27 14:37 RonyJay 阅读(784) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 15 下一页