Appium+Python之批量执行测试用例
思考:当存在多个脚本,每个脚本中有多条测试用例时,我们该如何批量执行呢?
分析:首先创建2个测试用例脚本(.py文件),每个脚本有2条测试用例,然后批量执行全部测试用例
#Test_01.py
# coding=utf-8
'''
Created on 2019-1-3
@author: 丹姐
Project:测试项目1
'''
import unittest class Test01(unittest.TestCase):
@classmethod
def setUpClass(cls,driver):
cls.driver=driver
def setUp(self):
pass
def test_one(self):
print(u'测试用例test_one')
def test_two(self):
print(u'测试用例test_two')
def tearDown(self):
pass
@classmethod
def tearDownClass(cls):
cls.driver.quit()
#Test_02.py
# coding=utf-8
'''
Created on 2019-1-3
@author: 丹姐
Project:测试项目2
'''
import unittest class Test02(unittest.TestCase):
@classmethod
def setUpClass(cls,driver):
cls.driver=driver
def setUp(self):
pass
def test_first(self):
print(u'测试用例test_first')
def test_second(self):
print(u'测试用例test_second')
def tearDown(self):
pass
@classmethod
def tearDownClass(cls):
cls.driver.quit()
方法一:利用TestSuite类addTest方法依次加载
if __name__ == "__main__":
#实例化测试套件
suite = unittest.TestSuite()
#用例加载到测试套件中
suite.addTest(Test01("test_one"))
suite.addTest(Test01("test_two"))
suite.addTest(Test02("test_first"))
suite.addTest(Test02("test_second"))
方法二:利用defaultTestLoader类discover方法找出所有.py文件下测试用例,然后加载到suite
注意:discover方法测试用例执行顺序是根据ASCII码来执行的,0~9,A~Z,a~z
if __name__ == "__main__":
test_dir = r'E://testing_code/code/SmartSiteTestScript/src/test_case' # 指明要自动查找的py文件所在文件夹路径
# 产生测试套件
def createSuite():
#实例化测试套件
testunit = unittest.TestSuite()
# 使用discover找出用例文件夹test_case的所有用例
discover = unittest.defaultTestLoader.discover(test_dir, # 查找的文件夹路径
pattern='Test_*.py') # 要测试的模块名,以Test开头的.py文件) for suite in discover: # 使用for循环出suite,再循环出case
for case in suite:
testunit.addTests(case)
print(testunit)
return testunit
#实例化测试套件方法
suite = createSuite()
除了以上2种方法,还有其他方法,比如测试用例参数化方法,待后续说明.....
Appium+Python之批量执行测试用例的更多相关文章
- 使用python进行接口自动化测试,批量执行测试用例
工作中,使用python的requests库进行接口自动化测试是一个比较不错的选择,今天就以某网站的免费接口为例,展示以get请求进行批量执行测试用例.话不多说直接开讲 分析一下接口信息, 请求地址: ...
- web自动化测试实战之批量执行测试用例
01实战之分离测试固件 在UI 自动化测试中,不管编写哪个模块的测试用例,都需要首先在测试类中编写测试固件初始化WebDriver类及打开浏览器,执行登录,才能进行下一步业务逻辑的操作,测试用例执行完 ...
- selenium之批量执行测试用例
把写好的测试用例放在指定目录下,使用discover函数扫描该目录,并根据关键字自动筛选需要执行的用例.本例使用Python3.6版本. # 遍历指定目录,批量执行测试用例 import unitte ...
- python自动化--批量执行测试之生成报告
一.生成报告 1.先执行一个用例,并生成该用例的报告 # -*- coding: utf-8 -*- from selenium import webdriver from selenium.webd ...
- unittest批量执行测试用例
现有四个测试用例分别在两个.py文件中,如何执行这些文件? unittest中有这样处理:unittest.TestLoader().discover() 第一个文件test_case1.py fro ...
- JAVA 批量执行测试用例
如果多个测试用例在不同的类中,又需要一次性执行完所有的测试用例,则可以使用到Junit中的批量执行测试方法. 方法一 这种方式非常简单,不需要额外多写一行代码,Eclipse 本来就支持以项目或包为单 ...
- postman使用--批量执行测试用例和数据驱动
批量执行 在我们测试接口的时候,有时候希望执行所有的测试用例,前面讲的都是测试单个的接口,postman提供了我们批量执行接口的功能 点击Runner 然后我们点击run 执行完会统计出我们的结果,失 ...
- python+selenium 批量执行时出现随机报错问题【已解决】
出现场景:用discover方法批量执行py文件,出现随机性的报错(有时a.py报错,有时b.py报错...),共同特点:均是打开新窗口后,切换最新窗口,但定位不到新窗口的元素,超时报错.由于个人项目 ...
- Python实现批量执行华为交换机脚本
#!/usr/bin/python3 # -*- coding:utf-8 -*- import paramiko import time ssh = paramiko.SSHClient() key ...
随机推荐
- python getattr函数的妙用
import platform class Test: def test(self): func = getattr(self,'windows') func() @staticmethod def ...
- 048:ORM模型基本的增删改查操作
ORM对数据库的增删改查基本操作: 创建模型如下: 基本的增删改查如下:
- 039:模版结构优化之include标签详解
引入模版: 有时候一些代码是在许多模版中都用到的.如果我们每次都重复的去拷贝代码那肯定不符合项目的规范.一般我们可以把这些重复性的代码抽取出来,就类似于Python中的函数一样,以后想要使用这些代码的 ...
- 【NOIP2016提高A组8.12】礼物
题目 夏川的生日就要到了.作为夏川形式上的男朋友,季堂打算给夏川买一些生日礼物. 商店里一共有种礼物.夏川每得到一种礼物,就会获得相应喜悦值Wi(每种礼物的喜悦值不能重复获得). 每次,店员会按照一定 ...
- 【华容道】题解(NOIP2013提高组day2)
分析 这道题很容易想到令f[x][y][x1][y1]表示空白块在(x,y).指定棋子在(x1,y1)时的最少步数,让空白块和四周的棋子交换,当空白块要和指定棋子交换时,把指定棋子移动,搞一下BFS就 ...
- pytest-生成测试报告
import pytest """ 使用pytest编写用例,必须遵守以下规则: (1)测试文件名必须以"test_"开头或者"_test& ...
- JS基础篇--sort()方法的用法,参数以及排序原理
JS基础篇--sort()方法的用法,参数以及排序原理 sort() 方法用于对数组的元素进行排序,并返回数组.默认排序顺序是根据字符串Unicode码点.语法:arrayObject.sort( ...
- 常用的JAVA第三方工具类
转自:https://www.jianshu.com/u/9c5cb1ee4c46 一. org.apache.commons.io.IOUtils 注解 说明 closeQuietly 关闭一个IO ...
- Nginx动静分离-tomcat
一.动静分离 1.通过中间件将动态请求和静态请求分离. 2.为什么? 分离资源,减少不必要的请求消耗,减少请求延时. 3.场景 还可以利用php,fastcgi,python 等方式 处理动态请求 # ...
- element-ui的rules全局验证
原文:https://www.jianshu.com/p/6a29e9e51b61 rules.js var QQV = (rule, value, callback) => { debugge ...