python写自动化脚本_批量生成python自动化测试脚本

914ae131f6dfd2dc51b75f59f7b68b5f.png

先前有家供应商与我们合作开发自动化工程,采用的py unittest作为脚本运行框架。我发现他们出的脚本都是挨个手写的,格式上也是参差不齐。所以有了根据用例表批量生成脚本的一段小代码

对一个测试脚本必须存在哪些内容,我认为若满足以下三点要求,就算一个合格的测试脚本了。

1、测试用例的描述,包含测试目的,测试详细步骤,预期结果等

2、简洁,易于阅读和维护的代码结构

3、详细的运行LOG记录与测试报告

所以很明显以上脚本结构上是不够完整的,测试执行人员可能都不知道这个脚本测的什么内容。改之

根据用例表批量生成脚本

我的用例管理表如下,xlsx的表格。以下内容是随便举的一个例子(可能测试用例写得不正确)

d8df86b9c357e347c761d57e103a50a5.png

代码实现的逻辑:解析用例管理表,生成测试脚本框架

# !/usr/bin/env python
# -*- coding:utf-8 -*-
# !python3__author__ = "xxx""""自动化脚本生成工具"""import osimport xlrdimport time
TestCaseName = ""
TestCaseDescription = ""
TestCasePreCondition = ""
TestCaseStep = ""
TestCaseExpectResult = ""
TestEnvironment = ""
TestScriptName = ""
cur_path = os.getcwd()def scripts_template():
testcases = os.path.join(cur_path, u"用例模板.xlsx")
data = xlrd.open_workbook(r'%s' % testcases)
table = data.sheet_by_index(0)
n_rows = table.nrows
n_cols = table.ncolsfor i in range(1, n_rows):
TestCaseName = table.cell_value(i, 1)
TestCaseDescription = table.cell_value(i, 2)
TestCasePreCondition = table.cell_value(i, 3)
TestCaseStep = table.cell_value(i, 4)
TestCaseExpectResult = table.cell_value(i, 5)
TestEnvironment = table.cell_value(i, 0)
TestScriptName = "test_{0}".format(TestCaseName) #符合unittest测试用例定义的识别条件, 以"test"开头
filename = os.path.join(cur_path, "{0}.py".format(TestScriptName))
with open(filename, 'w', encoding='utf-8') as out:
out.write('''# !/usr/bin/env python
# -*- coding:utf-8 -*-
"""
#-----------------------------------------------------------------------
用例名称: {0}
用例描述: {1}
前置条件:
{2}
测试步骤:
{3}
预期结果:
{4}
测试环境: {5}
作者:{6}
日期:{7}
#-----------------------------------------------------------------------
"""
import unittest
class {8}(unittest.TestCase):
def setUp(self):
#TODO 添加用例执行前置条件
pass
def testRun(self):
#TODO 添加用例执行测试步骤
pass
def tearDown(self):
#TODO 添加恢复测试环境操作
pass
if __name__ == '__main__':
unittest.main()'''.format(TestCaseName, TestCaseDescription, TestCasePreCondition,
TestCaseStep, TestCaseExpectResult, TestEnvironment, __author__,
time.strftime('%Y-%m-%d'), TestScriptName));print("generate scripts finished!")if __name__ == "__main__":

scripts_template()

运行一下以上测试脚本生成代码。生成的脚本如下:

 1 # !/usr/bin/env python 2 # -*- coding:utf-8 -*- 3  4 """ 5 #----------------------------------------------------------------------- 6 用例名称: case_01_01_01_01 7 用例描述: 测试天气提示刷新 8 前置条件: 9 打开天气APP10 测试步骤:11 1.后台设置今日天气为多云,查看App提示是否更新。12 预期结果:13 页面天气提示刷新为多云14 测试环境: Phone15 作者:xxx16 日期:2019-01-0817 #-----------------------------------------------------------------------18 """19 20 import unittest21 22 23 class test_case_01_01_01_01(unittest.TestCase):24 25     def setUp(self):26         #TODO 添加用例执行前置条件27         pass28 29     def testRun(self):30         #TODO 添加用例执行测试步骤31         pass32 33     def tearDown(self):34         #TODO 添加恢复测试环境操作35         pass36 37 if __name__ == '__main__':38     unittest.main()

ff1637e42ace791299a3bd6effc11cbe.png

7月份福利课来袭,心动就关注一下吧~

上课地址:https://ke.qq.com/course/2769755?taid=9802833359160155&tuin=967526f

c1951b8141d4e256c574183f116958e8.png

已标记关键词 清除标记
表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页