摘要: 为了提高代码的复用性,我们在写用例的时候,会用到函数,然后不同的用例去调用这个函数。比如登录操作,大部分的用例都会先登录,那就需要把登录单独抽出来写个函数,其它用例全部的调用这个登录函数就行。但是登录的账号不能写死,有时候我想用账号 1 去登录,执行用例 1,用账号 2 去登录执行用例 2,所以需要对函数传参。登录函数传参把登录单独成立,写一个函数,传 2 个参数 user 和 psw,写用例的时... 阅读全文
posted @ 2018-09-20 18:01 向前走。 阅读(503) 评论(0) 推荐(0) 编辑
摘要: 当用例 a 失败的时候,如果用例 b 和用例 c 都是依赖于第一个用例的结果,那可以直接跳过用例 b 和 c 的测试,直接给他标记失败 xfail用到的场景,登录是第一个用例,登录之后的操作 b 是第二个用例,登录之后操作 c 是第三个用例,很明显三个用例都会走到登录。如果登录都失败了,那后面 2 个用例就没测试必要了,直接跳过,并且标记为失败用例,这样可以节省用例时间。 用例设计pytest 里... 阅读全文
posted @ 2018-09-20 17:09 向前走。 阅读(369) 评论(0) 推荐(0) 编辑
摘要: pytest 可以支持自定义标记,自定义标记可以把一个 web 项目划分多个模块,然后指定模块名称执行。app 自动化的时候,如果想android 和 ios 公用一套代码时,也可以使用标记功能,标明哪些是 ios 用例,哪些是 android 的,运行代码时候指定 mark 名称运行就可以 mark 标记以下用例,标记 test_send_http()为 webtest -v指定的函数节点... 阅读全文
posted @ 2018-09-20 16:42 向前走。 阅读(374) 评论(0) 推荐(0) 编辑
摘要: 这是一个快速指南,介绍如何在不同情况下跳过模块中的测试1.无条件地跳过模块中的所有测试:pytestmark = pytest.mark.skip("all tests still WIP")2.根据某些条件跳过模块中的所有测试pytestmark = pytest.mark.skipif(sys.platform == "win32","tests for linux˓→ only"3.如果缺少... 阅读全文
posted @ 2018-09-20 15:38 向前走。 阅读(411) 评论(0) 推荐(0) 编辑
摘要: 如果我们要断言它抛的异常是不是预期的,比如执行:1/0,预期结果是抛异常:ZeroDivisionError: division by zero,那我们要断言这个异常,通常是断言异常的 type 和 value 值了。 这里 1/0 的异常类型是 ZeroDivisionError,异常的 valu 阅读全文
posted @ 2018-09-20 15:01 向前走。 阅读(393) 评论(0) 推荐(0) 编辑
摘要: 断言是写自动化测试基本最重要的一步,一个用例没有断言,就失去了自动化测试的意义了。什么是断言呢?简单来讲就是实际结果和期望结果去对比,符合预期那就测试 pass,不符合预期那就测试 failed pytest 允许使用标准 Python 断言来验证 Python 测试中的期望和值。例如 断言 f() 阅读全文
posted @ 2018-09-20 15:01 向前走。 阅读(300) 评论(0) 推荐(0) 编辑
摘要: pytest.mark.parametrize 装饰器可以实现测试用例参数化。1.这里是一个实现检查一定的输入和期望输出测试功能的典型例子 import pytest@pytest.mark.parametrize('test_input,expected', [('3+5', 8), ('... 阅读全文
posted @ 2018-09-20 14:16 向前走。 阅读(378) 评论(0) 推荐(0) 编辑
摘要: 平常写自动化用例会写一些前置的 fixture 操作,用例需要用到就直接传该函数的参数名称就行了。当用例很多的时候,每次都传返个参数,会比较麻烦。fixture 里面有个参数 autouse,默讣是 Fasle 没开启的,可以设置为True 开启自动使用 fixture 功能,返样用例就丌用每次都去 阅读全文
posted @ 2018-09-20 13:48 向前走。 阅读(383) 评论(0) 推荐(0) 编辑
摘要: yield 遇到异常 1、如果其中一个用例出现异常,不影响 yield 后面的 teardown 执行,运行结果互不影响,并且全部用例执行完之后,yield 呼唤 teardown操作 2.如果在 setup 就异常了,那么是不会去执行 yield 后面的teardown 内容了 3.yield 也 阅读全文
posted @ 2018-09-20 11:55 向前走。 阅读(730) 评论(0) 推荐(0) 编辑
摘要: 用例加 setup 和 teardown 可以实现在测试用例之前或之后加入一些操作,但返种是整个脚本全局生效的,如果我想实现以下场景:用例 1 需要先登录,用例 2 不需要登录,用例 3 需要先登录。很显然这就无法用 setup 和 teardown 来实现了。 fixture 优势firture 阅读全文
posted @ 2018-09-20 11:24 向前走。 阅读(1176) 评论(0) 推荐(0) 编辑
摘要: 用例运行级别 模块级(setup_module/teardown_module)开始于模块始末,全局的 函数级(setup_function/teardown_function)只对函数用例生效(不在类中) 类级(setup_class/teardown_class)只在类中前后运行一次(在类中) 阅读全文
posted @ 2018-09-20 10:49 向前走。 阅读(487) 评论(0) 推荐(0) 编辑