随笔分类 -  Web

摘要:一、痛点分析 在实际企业的项目中,自动化测试的代码往往需要在不同的环境中进行切换,比如多套测试环境、预上线环境、UAT环境、线上环境等等,并且在DevOps理念中,往往自动化都会与Jenkins进行CI/CD,不论是定时执行策略还是迭代测试,那么问题来了,难道每次切换环境都需要提供一套测试代码?或者 阅读全文
posted @ 2020-10-20 16:40 小公瑾 阅读(4547) 评论(3) 推荐(4) 编辑
摘要:一、安装pytest-emoji pip install -i https://pypi.douban.com/simple pytest-emoji 二、使用方法 直接在pytest的命令行中加上"--emoji"就可以啦,示例: pytest '-sv --emoji' 执行测试用例的时候,就会 阅读全文
posted @ 2020-06-12 15:24 小公瑾 阅读(525) 评论(0) 推荐(0) 编辑
摘要:用例设计部分,无论是手工测试还是自动化测试,都必须要的环节,也是非常重要的环节。在做自动化的时候,用例需要考虑前置后置、步骤和对比,每一个部分都要有提供非常明确的测试数据,要考虑数据的重复使用是否会影响脚本的执行结果。 自动化用例设计原则 1.不是所有的手工用例都要转成自动化测试用例 2.考虑到脚本 阅读全文
posted @ 2019-11-09 12:06 小公瑾 阅读(1073) 评论(0) 推荐(1) 编辑
摘要:一、轴运算名称 ancestor:祖先结点(包括父结点) parent:父结点 preceding:当前元素节点标签之前的所有结点(html页面先后顺序) preceding-sibling:当前元素结点标签之前的所有兄弟结点(同级) following:当前元素结点标签之后的所有节点(html页面 阅读全文
posted @ 2019-11-02 13:22 小公瑾 阅读(1807) 评论(0) 推荐(1) 编辑
摘要:一、问题描述 在项目根目录下执行整个测试用例,直接从conftest.py模块中抛出了ModuleNotFoundError:No module named 'TestDatas'的异常: 二、解决方法 经排查确认模块导入的方式是正确的,conftest.py却没有成功地引入这个模块,这里就涉及到执 阅读全文
posted @ 2019-10-20 17:48 小公瑾 阅读(4471) 评论(0) 推荐(0) 编辑
摘要:痛点分析: 在做allure定制化的时候,关于附件添加这一块,我们在代码里可以添加我们准备好的附件,这里用图片,通过下面的方法就能实现 那如果我们执行测试用例生成的allure测试报告中,能把失败或者异常的测试用例的异常截图也自动添加到allure报告中,岂不更完美? 问题思考: 1.用例执行完后, 阅读全文
posted @ 2019-10-19 21:49 小公瑾 阅读(5096) 评论(5) 推荐(8) 编辑
摘要:痛点分析: 当我们每次执行完用例的时候,如果出现bug或者是测试脚本出了问题,一般会通过测试报告、异常截图、日志来定位分析,但是我们发现运行次数多了之后,异常截图和测试报告会不停地增多,对我们定位分析问题时造成了一定的困扰,因此我们希望每次执行用例前都提前清理掉对应目录下的文件 解决方法: 1.对于 阅读全文
posted @ 2019-10-19 21:21 小公瑾 阅读(1676) 评论(0) 推荐(0) 编辑
摘要:一、定制化后的效果展示 用两张图展示效果: 二、注意别踩坑 allure定制化想必大部分情况都会去选择pip install pytest-allure-adaptor这个插件,安装完成后,运行定制化代码出现以下报错: 安装了pytest-allure-adaptor插件的定制代码像这样的: 我们会 阅读全文
posted @ 2019-10-19 20:48 小公瑾 阅读(13043) 评论(10) 推荐(6) 编辑
摘要:一、pytest的优势 pytest是基于unittest之上的单元测试框架,它的优势如下: 自动发现测试模块和测试方法 断言使用 assert + 表达式 可以设置测试会话级(session)、模块级(module)、类级(class)、函数级(function)的fixture来共享测试用例的前 阅读全文
posted @ 2019-10-16 09:48 小公瑾 阅读(506) 评论(0) 推荐(2) 编辑
摘要:一、关于安装 pytest-html属于pytest的一个插件,使用它需要先安装 pytest可以生成多种样式的结果: 生成JunitXML格式的测试报告,命令:--junitxml=path 生成ResultLog格式的测试报告,命令:--resultlog=report/log.txt 生成Ht 阅读全文
posted @ 2019-10-16 09:47 小公瑾 阅读(1401) 评论(0) 推荐(0) 编辑
摘要:一、关于安装 allure是跟pytest一起集成使用的,所以需要同时安装pytest以及allure-pytest插件: 接下来安装allure,它依赖java环境,需要提前安装jdk并配置jdk环境变量,环境变量如果不会配置的,可以跳转到这个地址:https://www.cnblogs.com/ 阅读全文
posted @ 2019-10-16 09:40 小公瑾 阅读(765) 评论(0) 推荐(0) 编辑
摘要:web自动化测试中,稳定性在整个测试运行中都至关重要,但不能保证测试脚本或者测试环境一直都能够稳定,它牵扯到诸多因素,在这里就不赘述,pytest框架相较于unittest的一大优势就在于拥有用例失败的重试机制,以此来应对环境不稳定问题或者是测试用例脚本的不稳定性问题。 一、安装 重运行机制使用到了 阅读全文
posted @ 2019-10-16 09:39 小公瑾 阅读(1954) 评论(0) 推荐(1) 编辑
摘要:在测试用例的前面加上:@pytest.mark.parametrize('参数名', 列表数据) 参数名:用来接收每一项数据,并作为测试用例的参数 列表参数:一组测试数据(元组、列表、字典) 方式一: @pytest.mark.parametrize('参数', [数据1, 数据2, 数据3.... 阅读全文
posted @ 2019-10-16 09:38 小公瑾 阅读(401) 评论(0) 推荐(0) 编辑
摘要:一、conftest.py 定义公共的fixture,多个测试类中都可以调用 pytest提供了conftest.py文件,可以将fixture定义在此文件中 运行测试用例时,不需要去导入这个文件,会自动去查找conftest.py文件,然后去找到对用的fixture 二、前置和后置 fixture 阅读全文
posted @ 2019-10-16 09:36 小公瑾 阅读(1687) 评论(0) 推荐(0) 编辑
摘要:对测试用例打标签,在运行测试用例的时候,可根据标签名来过滤要运行的用例。 一、注册标签名 1.创建pytest.ini文件,在文件中按如下方式添加标签名: 备注:冒号之后是描述信息(可写可不写)。 2.在conftest.py文件当中,通过hock注册: 二、打标签 打标记的范围:测试用例、测试类、 阅读全文
posted @ 2019-10-16 09:35 小公瑾 阅读(1540) 评论(0) 推荐(1) 编辑
摘要:在使用selenium对页面进行相关操作时,有时候会遇到以下三种情况: 1.日期框:无法直接输入文本,必须要选择某一天的日期并点击才会填入文本框; 2.检索框:可以直接输入文本,但必须要点击根据输入的文本检索出来的下拉列表的某一项; 3.置灰的文本框:无法直接输入文本 按照常规套路,我们通常都会采取 阅读全文
posted @ 2019-09-30 15:29 小公瑾 阅读(995) 评论(0) 推荐(0) 编辑
摘要:在PO模式当中,我们做到了页面对象与测试用例的分离,但在页面对象编写时,我们仍然还有优化的空间。页面对象有一些共同的基本操作,可以封装起来,并可以在基本操作当中加上日志和异常截图的处理。比如说我们在查找元素时,都需要等待,在PO模式当中,需要都写上等待和查找元素,那么就可以将其封装起来,包括其它的一 阅读全文
posted @ 2019-09-29 16:54 小公瑾 阅读(2223) 评论(13) 推荐(11) 编辑
摘要:方法一、input标签上传 如果是input标签,可以直接输入路径,那么可以直接调用send_keys输入路径,这里不做过多赘述,前文有相关操作方法。 方法二、非input标签上传 这种上传方式需要借助第三方工具,主要有以下三种情况: 1.AutoIt 去调用它生成的au3或者exe格式的文件 2. 阅读全文
posted @ 2019-09-19 00:57 小公瑾 阅读(11628) 评论(11) 推荐(10) 编辑
摘要:一、handle窗口切换 当点击某个元素后,会重新生成一个新的页签,但此时我们的操作仍然在原先的窗口当中,如果要在新的窗口继续操作元素,那么就要用到handle窗口切换的方法。 常用方法: window_handles:获取当前打开的所有窗口句柄,返回类型为一个列表。 current_window_ 阅读全文
posted @ 2019-09-12 10:05 小公瑾 阅读(3261) 评论(0) 推荐(0) 编辑
摘要:9 多表单切换 在Web应用中经常会遇到frame/iframe表单嵌套页面的应用,WebDriver只能在一个页面上对元素识别与定位,对于frame/iframe表单内嵌页面上的元素无法直接定位。这时就需要通过switch_to.frame()方法将当前定位的主体切换为frame/iframe表单 阅读全文
posted @ 2019-09-09 10:04 小公瑾 阅读(502) 评论(0) 推荐(0) 编辑