python 自动化输入中文的方法_【自动化系列】方法工厂,在用例case输入中文调用方法...

本文介绍了如何在Python自动化测试中实现用例调用中文方法,通过配置文件定义方法与中文名映射,利用工厂方法根据用例中的中文方法名动态调用相应的方法。这种方法使得测试用例更简洁易懂,尤其适合自动化测试新手。
摘要由CSDN通过智能技术生成

前言:

主使用到的有config配置文件、不定长参数、取类方法属性等知识点。

完成这样一个工厂后,写用例就不需要在用例类中去写很多特定场景的方法了。只需要在excel里中文调用便能达到效果,通俗易懂,使用自动化更适合新人上路

1、先设计用例

如下图,case_id为1的是一条常规的测试用例,不多说了

case_id为2

interface是commfun,这是一个标识,是commfun就要使用

method是中文,方法名,工厂中方法的中文定义

url、data、expected、Test result 是方法参数,数量区间[0,4]

34f651d2bf5952f991b580112adaceae.png

2、代码设计

在用例类里设计

第一、在用例类里面将取到的case字段interface判断是不是commfun,如果是,就调用工厂入口,如果不是,继续执行用例。

传参,工厂方法里使用不定长参数,随例定义参数传值都行,

if case['interface'] == 'commfun':

"""

如果接口是公共方法,那么字段如下

method:公共方法名

title: 返回接果

url:参数

data:参数

"""

_isOk, _strLog = self._opear_keyword(method=case['method'],

result=case['title'],

param_1=case['url'],

param_2=case['data'],

param_3=case['expected'],

param_4=case['Test result'])

else:

#执行用例

第二、工厂方法实现

一、先在配置文件里将方法与中文方法名配置好,如下图

e2d94bff74cad61a93d589bbda232f08.png

二、方法名初始化,方法类初始化

self.con = Config()

self.syskey = Handkeyworld()

self.userkey = Userkeyworld()

self.keyword = dict(self.con.items('userkeyword'))

self.syskeyword = dict(self.con.items('syskeyword'))

三、取出不定长参数里的method键,就是方法中文名,见这行method = self.keyword[kwargs['method']]

四、通过方法中文名称取到公共方法后,取出公共方法,见这行func = getattr(self.userkey, method, None),然后使用func便可调用到公共的方法了。

def method_factory(self, *args, **kwargs):

"""

用例公共方法工厂

默认传的参数为:

result:用来接收结果的变量,格式可为${abc}

method:调用的方法,这里设计方法都使用中文

param_x:参数,数量不限。格式可为${abc}会替换为已存在的数据

"""

#m_bool = False

if kwargs.__len__() > 0:

try:

kwargs['method']

except KeyError:

return False, 'keyword:用例[method]字段方法没参数为空.'

try:

method = self.keyword[kwargs['method']]

m_bool = True

except KeyError:

try:

method = self.syskeyword[kwargs['method']]

m_bool = False

except KeyError:

return False, 'keyword:方法[' + kwargs['method'] + '] 不存在,或未注册.'

if m_bool:

func = getattr(self.userkey, method, None)

_isOk, _strLog = func(*args, **kwargs)

return _isOk, 'keyword:[' + kwargs['method'] + '] 方法:.' + _strLog

else:

fuc = getattr(self.syskey, method, None)

_isOk, _strLog = fuc(*args, **kwargs)

return _isOk, 'keyword:[' + kwargs['method'] + '] 方法:' + _strLog

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值