一: 说明

跟数据驱动唯一的区别为用例数据获取时,及运行方式不同。

其它都基本相同,可参考https://www.cnblogs.com/xiaodingdong/p/11753220.html

二: 指定用例形式

1. 读取excel的数据之后,通过”函数“这个列表名来作为pandas的新序号。 不需要将数据转换为list。 代码如下

def excel_to_pandas(excel: str, sheet: str, title_name: str) -> object:
"""
读取用例
:return: 将数据转换成Pandas进行返回
"""
excel_path = get_ini_file(excel)
# 读取相应路径中的数据
read = OpenExcelPandas(name=excel_path, sheet=sheet)
ex_data = read.internal_read_excel(title_name)
# ex_data = [row for row in ex_data.itertuples(index=True)]
return ex_data

2. 缺点为:test函数名要对应excel中函数列表中所定义的名字。并且要求是唯一性。

3. 代码如下:

import os
import inspect import unittest
from case.zentao import user_login from business.zentao.login import user_login_business
from business.zentao.login.user_login_business import UserLoginBusiness base_path = os.path.split(os.path.dirname(__file__))[1]
base_name = base_path + "-" + os.path.splitext(os.path.basename(__file__))[0]
excel_data = user_login.excel_to_pandas(user_login.login_excel, user_login.login_sheet_two, '函数') class TestLoginUserTwo(unittest.TestCase): @classmethod
def setUpClass(cls) -> None:
cls.business_login = UserLoginBusiness(base_name) def setUp(self) -> None:
self.business_login.create_browser()
pass def tearDown(self) -> None:
self.business_login.login_page.browser_action.close_driver_browser()
pass def user_login_format(self, method_name):
# 设置日志需要输出的函数名
self.business_login.log.fun_name = method_name
self.business_login.log.info("%s序号的用例开始运行" % method_name)
# 打印需要输出的内容
# self.business_login.log.info("用例中所以的内容为:%s" % case) # 定义第三方存储对象,可以让其它对象进行调用使用。
self.business_login.data_case_singe = excel_data.loc[method_name] # 运行执行用例需要执行的动作
self.business_login.user_pass_error() self.business_login.log.info("%s序号的用例运行完毕" % method_name)
pass def test_format_error(self):
self.user_login_format(inspect.stack()[0][3])
pass def test_not_input(self):
self.user_login_format(inspect.stack()[0][3])
pass def test_input_account(self):
self.user_login_format(inspect.stack()[0][3])
pass def test_input_password(self):
self.user_login_format(inspect.stack()[0][3])
pass def test_succeed_skip(self):
self.user_login_format(inspect.stack()[0][3])
pass if __name__ == '__main__':
unittest.main(verbosity=2)

项目所在位置:

https://github.com/namexiaohuihui/demotest

unittest 运行slenium(四)---通过指定用例的形式运行用例的更多相关文章

  1. unittest 运行slenium(二)---打开浏览器及元素操作

    一: 打开win10中安装的浏览器 1. 打开的浏览器有:谷歌/火狐/ie/edge 2. 当浏览器的driver没有配置在path环境下时,在启动浏览器时需要传入driver的所在位置 3. 其中火 ...

  2. java 面向对象(四十二):反射(六)反射应用三:调用运行时类的指定结构

    调用指定的属性: @Test public void testField1() throws Exception { Class clazz = Person.class; //创建运行时类的对象 P ...

  3. 四:(之七_如何与运行中容器交互)Dockerfile语法梳理和实践

    1.指定网络连接方式:--net=””   (bridge/host/none/container: 四种类型) 注:192.168.33.18 此IP是在vagrantfile中指定的虚拟机IP:c ...

  4. <四>面向对象分析之UML核心元素之用例

    一:基本概念        --->用例定义了一组用例实例,其中每个实例都是系统所执行一系列操作,这些操作生成特定主角可以观测的值.        --->所谓用例,就是一件事情,要完成这 ...

  5. 运行tomcat6w.exe ,提示 指定的服务未安装 unable to open the service 'tomcat66'

    错误:运行tomcat6w.exe ,提示 指定的服务未安装 unable to open the service 'tomcat6'(我用的是官网下载的解压版) 解决方法: 打开命令行提示符窗口=& ...

  6. Arduino可穿戴教程之第一个程序——上传运行程序(四)

    Arduino可穿戴教程之第一个程序——上传运行程序(四) 2.4.5  上传程序 现在所有Arduino IDE的设置都完成了,我们就可以将示例程序上传到板子中了.这非常简单,只需要单击如图2.45 ...

  7. 运行tomcat6w.exe ,提示 指定的服务未安装 unable to open the service 'tomcat6'

    错误:运行tomcat6w.exe ,提示 指定的服务未安装 unable to open the service 'tomcat6'(我用的是官网下载的解压版) 解决方法: 打开命令行提示符窗口=& ...

  8. java 面向对象(四十):反射(四)反射应用一:创建运行时类的对象

    1.代码举例Class<Person> clazz = Person.class; Person obj = clazz.newInstance();System.out.println( ...

  9. Python接口测试实战4(下) - 框架完善:用例基类,用例标签,重新运行上次失败用例

    如有任何学习问题,可以添加作者微信:lockingfree 课程目录 Python接口测试实战1(上)- 接口测试理论 Python接口测试实战1(下)- 接口测试工具的使用 Python接口测试实战 ...

随机推荐

  1. python中的随机函数random的用法示例

    python中的随机函数random的用法示例 一.random模块简介 Python标准库中的random函数,可以生成随机浮点数.整数.字符串,甚至帮助你随机选择列表序列中的一个元素,打乱一组数据 ...

  2. 改进初学者的PID-积分饱和

    最近看到了Brett Beauregard发表的有关PID的系列文章,感觉对于理解PID算法很有帮助,于是将系列文章翻译过来!在自我提高的过程中,也希望对同道中人有所帮助.作者Brett Beaure ...

  3. mysql的驱动类com.mysql.jdbc.Driver过时了,需要用com.mysql.cj.jdbc.Driver代替

    springboot项目整合mybatis,配置文件如下: server: port: 8081 mybatis: config-location: classpath:mybatis/mybatis ...

  4. JS中的match和test正则表达式验证密码或用户名的一种规则

    match语法:字符串.match(正则表达式)有符合的:返回符合的数组无符合的:返回null test语法:正则表达式.test(字符串)有符合的:返回true无符合的 :返回false 该文的密码 ...

  5. jquery创建一个新的节点对象(自定义结构/内容)的好方法

    jq创建一个新的节点对象,这对一些自定义功能很有帮助,而且可以随意控制对象的结构与内容,何乐而不为呢,看到这里,相信有些朋友已经按耐不住了,好记下来为大家介绍实现方法,感兴趣的朋友可以了解下哦 < ...

  6. web端自动化——selenium3用法详解

    selenium中文学习文档链接:https://selenium-python-zh.readthedocs.io/en/latest/getting-started.html selenium3+ ...

  7. iOS-UIDocumentInteractionController打开和预览文档

    iOS提供了使用其他app预览文件的支持,这就是Document Interaction Controller.此外,iOS也支持文件关联,允许其他程序调用你的app打开某种文件.而且,从4.2开始, ...

  8. SSH 连接时间超时

    linux服务端 # vi /etc/ssh/sshd_config ClientAliveInterval 60 ClientAliveCountMax 3 # 注: # ClientAliveIn ...

  9. 011 Android AutoCompleteTextView(自动完成文本框)的基本使用

    1.XML布局 android:completionThreshold="1":这里我们设置了输入一个字就显示提示 (1)主界面布局 <?xml version=" ...

  10. 链表习题(1)-设计一个递归算法,删除不带头结点的单链表L中所有值为x的结点

    /*设计一个递归算法,删除不带头结点的单链表L中所有值为x的结点*/ /* 算法思想:设f(L,x)的功能是删除以L为首结点指针的单链表中所有值等于x的结点, 则显然有f(L->next,x)的 ...