引言

我们使用RF做UI自动化测试的时候,使用的是关键字驱动。同样,Python做接口自动化测试的时候,也可以使用关键字驱动。但是这里并不是叫关键字驱动,而是叫数据驱动。而接口测试的关键字是什么呢? 我们数据驱动的载体是Excel,那么excel里存放的数据是接口测试用例数据,一个接口数据里有常量和变量。变量就是一些参数对应的值,而常量就是接口的:host、path、method和data等等。而这些常量是固定不变的,我们可以将接口测试用例这些常量封装到一个类中,每次执行测试的时候,调用类中某个方法来读取excel中接口关键字对应的值。这些就称之为——关键字数据。

接口关键字封装

众所周知,Excel中第一行字段的值都为固定的值,即常量。可以用这些常量来定位每一个测试用例不同字段的坐标值,将获取到的值传递给接口。

首先我们看看接口测试用例有哪些最主要的关键字常量:

上图基本上是接口测试用例关键的字段,当然可以根据自己项目需要自行添加。

我们在读取每条测试用例的时候,实际上是读取每行的数据,然后可以通过固定的关键字(列)来获取对应的值,最后传递给接口方法来执行接口测试。

封装如下:

class TestCaseKeyWord(object):

"""

定义测试用例关键字类

"""

CASE_ID = '0'

CASE_NAME = '1'

IS_EXECUTE = '2'

INTERFACE_URL = '3'

METHOD = '4'

HEADER = '5'

REQUEST_DATA = '6'

EXPECTED_RESULT = '7'

ACTUAL_RESULT = '8'

RESULT = '9'

# 获取用例id

def get_case_id():

return TestCaseKeyWord.CASE_ID

# 获取用例名称

def get_case_name():

return TestCaseKeyWord.CASE_NAME

# 用例是否执行

def get_case_is_execute():

return TestCaseKeyWord.IS_EXECUTE

# 接口url

def get_case_interface_url():

return TestCaseKeyWord.INTERFACE_URL

# 用例方法

def get_case_method():

return TestCaseKeyWord.METHOD

# 请求头

def get_case_header():

return TestCaseKeyWord.HEADER

# 请求参数

def get_case_payload():

return TestCaseKeyWord.REQUEST_DATA

# 预期结果

def get_case_expected_result():

return TestCaseKeyWord.EXPECTED_RESULT

# 实际结果

def get_case_actual_result():

return TestCaseKeyWord.ACTUAL_RESULT

# 用例执行结果

def get_case_result():

return TestCaseKeyWord.RESULT

if __name__ == '__main__':

print(get_case_id())

print(get_case_is_execute())

实例演示

在excel中添加一条测试用例:

新建testcase_test.py文件,获取接口测试用例名称:

from basic_method import testcases_keyword

from public.operate_excel import Operate_Excel

get_excel = Operate_Excel()

# 获取用例数

print(get_excel.get_sheet_nrows()-1)

# 返回用例名称关键字的列值

case_name_col = int(testcases_keyword.get_case_name())

print(case_name_col)

# 获取第一条用例的名称

get_name = get_excel.get_sheet_cell(1,case_name_col)

print(get_name)

执行结果:

总结

以上就是针对接口测试用例关键字的封装实操,常量封装十分简单,关键在测试方法与思想,更多自动化测试设计与想法,可以加入QQ测试开发交流群:696400122,一起讨论讨论,不积跬步无以至千里~

python接口封装_Python 接口测试之接口关键字封装相关推荐

  1. python编程语言继承_Python面向对象程序设计类的封装与继承用法示例

    本文实例讲述了Python面向对象程序设计类的封装与继承用法.分享给大家供大家参考,具体如下: 访问限制(封装) 1.概念 面向对象语言的三大特征:封装, 继承, 多态. 广义的封装: 类和函数的定义 ...

  2. python 接口测试多线程_python多线程测试接口性能,就是这么简单

    除了使用性能测试工具进行性能测试,我们也可以直接用python多线程进行性能测试. 下面,使用这几个模块,对一个查询接口做性能测试: requests:发送http请求 json:返回的字符串转换成j ...

  3. python调用webservice接口实例_python调用webservice接口的实现

    使用suds这个第三方模块 from suds.client import Client url = 'http://ip:port/?wsdl' cilent=Client(url) print c ...

  4. python调用webservice接口实例_python调用各种接口,webservice,c接口,com接口,socket协议方法...

    python调用webservice接口(SOAP) (2)调用示例: 需要先安装suds库:pip install suds from suds.client import Client #如果需要 ...

  5. python调用webservice接口实例_python发布webservice接口

    cd soaplib python setup.py install 2.服务端代码 import soaplib from soaplib.core.service import rpc, Defi ...

  6. python smtplib模块_python实现邮件接口——smtplib模块

    1. 思路 使用脚本发送邮件的思路其实和客户端发送邮件一样,过程都是: 登录 -> 写邮件 -> 发送 只不过通过脚本发送时我们需要考虑到整个过程的方方面面.以下为思路导图: 2. Pyt ...

  7. python 封装_Python 面向对象三大特性之封装

    封装 定义:隐藏对象的属性和实现细节,仅对外提供公共访问方式. [好处] 将变化隔离: 便于使用: 提高复用性: 提高安全性: [封装原则] 将不需要对外提供的内容都隐藏起来: 把属性都隐藏,提供公共 ...

  8. python return用法_Python 为什么没有 void 关键字?

    void 是编程语言中最常见的关键字之一,从字面上理解,它是"空的.空集.空白"的意思,最常用于表示函数的一种返回值类型. 维基百科上有一个定义: The void type, i ...

  9. python性能测试方法_Python性能测试之performance

    01使用 Python 性能测试套件 正如之前我在 speed.python.org 网站提到的,Python 核心开发团队非常重视性能问题,这对于比较官方基准和 CPython 版本非常有用. 如图 ...

  10. python变量说法_Python不允许使用关键字作为变量名,允许使用内置函数名作为变量名,但这会改变函数名的含义...

    根据材料,下列表述不正确的是().A.2003年一2009年,H省农民人均纯收入增加最多的是2008年B.2008 云南西双版纳有"植物王国""动物王国"的称誉 ...

最新文章

  1. Python中的__name__和__main__含义详解
  2. SAP QM 模块的弊端?
  3. Linux笔记:vim
  4. Codeforces Round #335 (Div. 1)--C. Freelancer's Dreams 线性规划对偶问题+三分
  5. CodeForces - 1426F Number of Subsequences(dp)
  6. SAP CRM text determination调试
  7. Android中传递对象的三种方法
  8. CentOS下添加Root权限用户‘超级用户’方法(xxx is not in the sudoers file.This incident will be reported.的解决方法)
  9. python 动态属性和特性
  10. python partial_Python--并行计算框架(pathos)
  11. UIViewAnimationOptions
  12. 获取FileUpload上传的文件大小
  13. 微带滤波器摘要_微带线带通滤波器设计
  14. 网络技术故障背后:50元发动的DDoS流量攻击
  15. 04 vue3 scss 组件component kepp-alive缓存子组件 nextTick
  16. 部署JAX-WS Web服务作为战争中的Apache Tomcat(Deploying JAX-WS webservice as War in Apache Tomcat)...
  17. 给PPT插入页码和总页码
  18. 【Rust日报】 2019-02-23
  19. 2022唯品会双11活动规则解读
  20. 喵哈哈村的打印机游戏(区间DP)

热门文章

  1. fpga与三八译码器(BASYS3 VIVADO18)
  2. php -- 目录、路径、磁盘
  3. struts2.3+spring3.2+hibernate4.2例子
  4. 桌面恶心的无法删除的图标之 淘宝购物 删除办法
  5. Membership、MembershipUser和Roles类
  6. [转载] Flask+Celery+Redis简单操作
  7. [转载] Python Web开发—进阶提升 490集超强Python视频教程 真正零基础学习Python视频教程
  8. [转载] python int 幂函数_Python中对数和幂函数的不精确结果
  9. Vue.js 学习笔记 二,一些输出指令
  10. Java匹马行天下之学编程的起点——走进编程的殿堂