接口自动化____如何根据测试数据excel中的数据量多少 去test类中定义同数据量的测试函数

背景:

在做2.0核心接口测试的时候,针对一个接口,如:客户信息查询  在测试数据的excel中假如填入了三行数据,如何根据

excel中有多少行的数据去动态的定义多少个test函数。

解决方案:

1.由于python的unittest中默认设置是:测试类中的函数,以test开头的会被执行,其他的不被执行,所以先定义一个测试函数,注意取名不能以test开头

比如上图,只有my_2700这么一个函数作为测试函数,这个传入的x是指作为测试数据的EXCEL中的某一行(如传入的是3,就是针对测试数据excel中的第三行,依次读取第三行中的数据,然后发送请求),然后根据下图,定义一个get_test函数,用来执行my_2700函数,最后的关键在于  __test_demo()函数

setattr第一个参数传入这个类名,第二个参数可以用来重命名这个函数,第三个参数就是来实例化的函数,这里的i的值为测试数据excel的行数,然后每一行生成一个test打头的函数名,这样子就完成了本篇文章一开头的需求,实现了根据excel的数据量,动态定义用来执行unittest的的函数。

关于setattr不懂的可以自己百度熟悉。

原文地址:https://www.cnblogs.com/alantammm/p/10340037.html

时间: 2024-11-04 07:36:38

接口自动化____如何根据测试数据excel中的数据量多少 去test类中定义同数据量的测试函数的相关文章

PHP接口中的静态变量、常量与类中静态变量、常量的区别

接口: 1 不能够定义静态变量(常量除外) 2 定义的常量 const YOUCONST = VALUE,不能在子类中覆盖,在子类中以 interfaceName::YOUCONST的方式调用 3 不能使用parent::YOUCONST的方式调用接口的常量 类: 1 const 变量可以使用parent::YOUCONST的方式,className::YOUCONST的方式在子类中访问 2 const定义的变量,在子类中可以被覆盖 3 当然在类中可以定义静态成员变量了 示例: <?phpint

惊天发现之&quot;c#中的Main函数不能调同一个类中的非静态方法&quot;

这是什么原因呢?求大神指点!惊天发现之"c#中的Main函数不能调同一个类中的非静态方法"

2020年第三期《python接口自动化+测试开发》课程,4月5号开学(火热报名中!)

2020年第三期<python接口自动化+python测试开发>课程,4月5号开学(火热报名中!) 主讲老师:上海-悠悠 上课方式:QQ群视频在线教学,方便交流 本期上课时间:4月5号-6月27号,每周六.周日晚上20:30-22:30 报名费:报名费3000一人(周期3个月) 联系QQ:283340479 课表如下 课程主要涉及的内容: 1.fiddler抓包与接口测试(测试基础必备) 2.python+pytest+allure框架实现接口自动化测试(pytest框架甩unittest几条

js里面如何才能让成员方法去调用类中其他成员

function fun(){ var _this = this; //如果函数是用var定义的私有函数,如下 var func1 = function(){ } //那么类中其他函数都可以直接通过func1()的形式调用 //如果函数是共有的,即用this定义,如下 this.func2 = function(){ } /*则需要得到func对像的引用,即fun中的this(注意:是fun中的).     然而到了调用者函数(如下的caller)内部时,this指的是caller函数而不再是f

在java中如何在非servlet的普通类中获取request、response、session

原文:http://blog.csdn.net/u012255097/article/details/53092628 在spring的普通类中: HttpServletRequest request = ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest(); request.getSession(); 在Struts的普通类中: HttpServletRequest reques

java中静态代码块(static{...}),局部代码块(方法中{...}),构造代码块(类中{...})区别。

1.局部代码块: 格式:在方法中{局部代码块执行语句} 局部代码块,又叫普通代码块.它是作用在方法中的代码块. 作用:是控制变量的生命周期. 在程序中当我们定义完成一个局部变量x之后,并且在接下来的代码中,不想再用到它时,那么就没必要让x在内存中继续占用空间.因此就有了局部代码块. 2.构造代码块: 格式:在类中{构造代码块执行语句} 作用:就是给所有对象进行初始化. 注意几点: 1)每次创建对象他都会执行. 2)构造代码快是优于构造函数执行. 3)构造代码块与构造函数的区别是:构造代码块是给所

将source类中的属性值赋给target类中对应的属性

/** * 对象的属性值拷贝 * <p> * 将source对象中的属性值赋值到target对象中的属性,属性名一样,类型一样 * <p> * example: * <p> * source: * <p> * String name; * String address; * Integer age; * Date birthday; * <p> * target: * String name; * String address; * String

接口自动化(二)--操作Excel获取需要数据

这一部分的内容记述一下对Excel表格的操作,本实战中的测试用例是由Excel来管理的,因此操作Excel是重要的一部分. 再次贴出这张图,所有的测试用例都在这个sheet内,请求数据真实存放在json文件内,表格中的请求数据列放置的是json文件内字典的key值. 操作Excel主要就是取出Excel中的case(即数据),然后执行,重点是怎样取出数据,因为有些数据是不需要的,所以不能用遍历Excel的方法来取数据. 思路一:把列数作为常量,行数作为变量来取想要的数据 思路二:把Excel中不

python接口自动化22-下载文件(excel)

前言 Content-Type类型为octets/stream,这种一般是文件类型了,比如有时候需要导出excel数据,下载excel这种场景如何用python来实现呢? 抓下载接口 1.下载的场景如下图 2.使用fiddler工具抓包,先找到导出按钮,点导出时候抓包 3.fiddler抓到数据如下(response里面乱码是正常的,文件类型是无法在工具里面展示出来的,工具只展示字符) 代码实现 1.生成excel的路径,如果没指定,会生成在当前脚本同一目录,如果指定的话,修改open里面第一个