接口测试用例脚本basefunc

ibase的Python项目详细描述


测试脚本自动生成项目

用例写法

通用参数

本地执行

执行&调用

引用方式

importsysfromos.pathimportabspath,join,dirnamesys.path.insert(0,join(abspath(dirname(__file__)),'../..'))

..代表上级目录

../..代表上上级目录

以此类推

代码环境

python 3.*

依赖包

  • 安装

pip install requests

目录结构

将执行脚本与base.py脚本放于同一目录下

沙盒环境

脚本执行方式

假设生成的文件名为: test_break_username.py

那么执行方式为: python test_break_username.py

任务项&进度

任务名称产出功能是否完成
测试基类base.py用于业务测试脚本继承完成
获取数据类get_req_data.py用于获取请求数据完成
json module解析类json_modify.py用于解析json module数据未完成
触发生成测试脚本文件generate_script.py用来生成对应接口的测试脚本文件完成
独立执行测试脚本命令-用于调用执行.py脚本完成
组装TestSuite并生成测试报告数据generate_test_data.py用于生成批量测试结果,持久化数据未完成

调用顺序

  1. generate_script.py 生成执行脚本

  2. 执行test_this_is_the_path.py 脚本

  3. base.py 进入base类

  4. 调用获取数据类,get_req_data.py json_modify.py

  5. 执行base.py中的用例

  6. 继续执行test_this_is_the_path.py中的用例

  7. 返回测试结果

可以通过命令行运行:模块、类、或者单个测试方法,具体的操作是如下:

运行测试模块:python -m unittest test_module1 test_module2

运行测试类:python -m unittest test_module.TestClass

运行测试方法:python -m unittest test_module.TestClass.test_method

  • 通用模板
  • 执行方式
  • 返回结果组装
  • 调用上报接口
方法检查一下新的
assertEqual(a, b)a == b
assertNotEqual(a, b)a != b
assertTrue(x)bool(x) is True
assertFalse(x)bool(x) is False
assertIs(a, b)a is b2.7
assertIsNot(a, b)a is not b2.7
assertIsNone(x)x is None2.7
assertIsNotNone(x)x is not None2.7
assertIn(a, b)a in b2.7
assertNotIn(a, b)a not in b2.7
assertIsInstance(a, b)isinstance(a, b)2.7
assertNotIsInstance(a, b)not isinstance(a, b)2.7

更具体的

方法检查一下新的
assertAlmostEqual(a, b)round(a-b, 7) == 0
assertNotAlmostEqual(a, b)round(a-b, 7) != 0
assertGreater(a, b)a > b2.7
assertGreaterEqual(a, b)a >= b2.7
assertLess(a, b)a < b2.7
assertLessEqual(a, b)a <= b2.7
assertRegexpMatches(s, r)r.search(s)2.7
assertNotRegexpMatches(s, r)not r.search(s)2.7
assertItemsEqual(a, b)排序(a)==排序(b)并使用不可用的objs2.7
assertDictContainsSubset(a, b)所有在键/值对一个在存在b2.7

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
安卓为什么Java AudioEffect不支持双簧管?   增加内存后出现java IntelliJ堆大小错误   在unix/linux中工作的java中将unicode字符串转换为ASCII   java是否缺少正确对齐输出的值?   java Spring 3 MVC:动态表单中的onetomany(创建/更新时添加/删除)   java在接口中创建两个通用参数   lambda使用Java 8从嵌套列表中使用forEach查找项的替代方法是什么?   Java正则表达式匹配10位电话号码,中间有空格   linux将log4j外部化。使用命令行Java的属性文件   带有SSL的java简单RMI服务器   java无法为事务[…]打开JPA EntityManager无法获取驱动程序类“null”和URL“null”的连接   Android设备上的java Oauth Foursquare   for循环的ImageButton名称的java骰子模拟浓缩   java有没有简单的1d条形码阅读器?   如何在调用resultset后解决“无效字符串或缓冲区长度”。从java到访问mdb的getString()连接   在Java8中,是否可以使用JVM参数来控制何时(或在什么条件下)卸载类?