如何使用re模块进行测试用例的参数化
import re
import os
from scripts.handle_mysql import HandleMysql
from scripts.handle_config import HandleConfig
from scripts.constants import CONFIGS_DIR class HandleParam:
'''
定义一个参数化类
''' not_exist_mobile = r'\${is_not_exist_mobile}'
admin_user_mobile = r'\${admin_user_mobile}'
user_id = r'\${user_id}' @classmethod
def param_not_exist_phone_num(cls, data):
'''
参数化未注册手机号
:param data: 参数化data
:return:
'''
if re.search(r'\${\w+}', data) is not None:
do_mysql = HandleMysql()
data = re.sub(cls.not_exist_mobile, str(do_mysql.is_not_exist_mobile()), data)
do_mysql.close()
return data
else:
return data @classmethod
def param_admin_user_phone_num(cls, data):
'''
参数化管理员手机号
:param data: 参数化data
:return:
'''
if re.search(r'\${\w+}', data) is not None:
user_conf = HandleConfig(os.path.join(CONFIGS_DIR, 'three_user_info.ini'))
data = re.sub(cls.admin_user_mobile, str(user_conf.get_int("manage_user", "mobilephone")), data)
return data
else:
return data @classmethod
def param_user_id(cls, data):
'''
参数化用户id
:param data: 参数化data
:return:
'''
if re.search(r'\${\w+}', data) is not None:
user_id = getattr(do_re, 'user_id')
data = re.sub(cls.user_id, str(user_id), data)
return data
else:
return data @classmethod
def parametrization(cls, data):
'''
批量参数化方法
:param data: 参数化data
:return:
'''
data = cls.param_not_exist_phone_num(data)
data = cls.param_exist_phone_num(data)
data = cls.param_user_id(data)
return data
do_re = HandleParam() # 创建一个参数化对象
如何使用re模块进行测试用例的参数化的更多相关文章
- Pytest权威教程13-Fixture方法及测试用例的参数化
目录 Fixture方法及测试用例的参数化 @pytest.mark.parametrize:参数化测试函数 基本的pytest_generate_tests例子 更多示例 返回: Pytest权威教 ...
- 使用 Python 中 re 模块对测试用例参数化,进行搜索 search、替换 sub
自动化测试用例,如果一百个接口要在Excel写100个sheet表单,每个接口有10个字段,里面有5个都可能是变化的,需要使用参数化,先试用特定的字符进行站位,在构造参数时在进行替换占位符: 一.用力 ...
- 行为驱动:Cucumber + Selenium + Java(四) - 实现测试用例的参数化
在上一篇中,我们介绍了Selenium + Cucumber + Java框架下的使用Tags对测试用例分组的实现方法,这一篇我们用数据表格来实现测试用例参数化. 4.1 什么是用例参数化 实际测试中 ...
- Jmeter接口测试系列之测试用例变量参数化处理
在进行接口测试时,一组完整的接口测试用例,存在后一个测试用例使用前一个用例的请求结果中的数据,此时就需要参数化测试用例中值.直接使用变量调用会存在问题,此时就需要用到beanshell去改变. 举例说 ...
- python-selenium并发执行测试用例(方法一 各模块每一条并发执行)
总执行代码: # coding=utf-8import unittest,os,timeimport HTMLTestRunnerimport threadingimport syssys.path. ...
- Python-unittest参数化
做接口测试的时候,同一个接口,输入的参数一样,参数值不一样,这时候,写多个case就是冗余的,就可以用参数化来实现,第三方模块有这个实现参数化的功能,安装pip install nose-param ...
- 11、pytest -- 测试的参数化
目录 1. @pytest.mark.parametrize标记 1.1. empty_parameter_set_mark选项 1.2. 多个标记组合 1.3. 标记测试模块 2. pytest_g ...
- pytest -- 测试的参数化
目录 1. @pytest.mark.parametrize标记 1.1. empty_parameter_set_mark选项 1.2. 多个标记组合 1.3. 标记测试模块 2. pytest_g ...
- 基于excel的接口自动化测试框架:支持参数化、关联等
1. 框架结构说明 2. 框架代码实现 action 包 case_action.py business_process 包 main_process.py util 包 global_var.py ...
随机推荐
- HttpClient发起Http/Https请求工具类
<dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpcl ...
- JavaScript-----9.函数
1.函数的使用 1.1 声明函数和调用函数 //1.声明函数 //function 函数名() { // //函数体 //} function sayHi() { console.log('hi~') ...
- centos7安装服务器之安装禅道
Centos7下安装禅道 1. 下载禅道的linux版本 我的centos7的版本为:7.7版本 2. 将下载的包上传到centos7服务器上 3. 将禅道压缩包解压到/opt目录下: 4. 启动禅道 ...
- 04-JVM垃圾收集器详解
1.垃圾收集器的种类 垃圾收集算法是内存回收的方法论,垃圾收集器是内存回收的具体实现工具.目前没有万能的垃圾收集器,需要根据具体的应用场景选择合适的垃圾收集器. 1.1Serial收集器(-XX:+U ...
- (转)格拉布斯准则(Grubbs Criterion)处理数据异常
格拉布斯准则:https://baike.baidu.com/item/%E6%A0%BC%E6%8B%89%E5%B8%83%E6%96%AF%E5%87%86%E5%88%99/3909586 G ...
- GO-切片拷贝以及赋值
一.拷贝 package main import "fmt" func main(){ //copy函数,把一个切片copy到另一个切片之上 var a [1000]int=[10 ...
- RabbitMQ的第一次亲密接触
企业应用系统,如果系统之间的通信.集成与整合,尤其当面临异构系统时,那么需要分布式的调用与通信.系统中一般会有很多对实时性要求不高但零零碎碎且耗时的地方,比如发送短信,邮件提醒,记录用户操作日志等,在 ...
- HTML元素分类 块级元素 内联元素 块级内联元素
概述 HTML中存在许多元素,如<h1>,<p>,<a>,<block>,<image>,这些元素可分为三类,依次是块级元素,内联元素,块级 ...
- YARN HA部署架构
hadoop001: zk rm(zkfc线程) nm hadoop002: zk rm(zkfc线程) nm hadoop003: zk nm RMStateStore: 存储在ZK的/rmstor ...
- python3.7安装, 解决pip is configured with locations that require TLS/SSL问题
python3.7安装, 解决pip is configured with locations that require TLS/SSL问题1.安装相关依赖 yum install gcc libff ...