8. 命令行参数与unpack

乙醇 创建于 about 7 years 之前

最后更新: less than a minute 之前

阅读数: 300

8. 命令行参数与unpack

背景

我们先稍微的修改一下上一节的用例生成器,加入接收命令行参数的功能。

作为测试用例的执行者,我们希望在创建用例的时候可以指定用例编号,以便能够更加系统的管理测试用例。

代码实现

新建名为gen_test_case_with_id.py,内容如下


from sys import argv

script, case_id = argv
print(f"创建测试用例\n用例编号: {case_id}")
case_name = input("请输入用例名称:\n")
test_data = input("请输入用到的测试数据,比如: 测试站点=www.itest.info:\n")
test_steps = input("请输入测试步骤:\n")
test_assert = input("请输入测试断言(预期结果):\n")

formatter = """
用例编号: {}
用例名称: {}
测试数据: {}
测试步骤: {}
测试断言: {}
"""

print(formatter.format(case_id, case_name, test_data, test_steps, test_assert))

运行

在命令行中使用下面的命令去执行代码

$python gen_test_case_with_id.py itest_001

注意: 我们在脚本名称后面加上了itest_001,这就是我们指定的用例编号,千万不要忘记传入这个参数,否则代码将会报如下的错误

Traceback (most recent call last):
  File "gen_test_case_with_id.py", line 3, in <module>
    script, case_id = argv
ValueError: not enough values to unpack (expected 2, got 1)

你应该可以看到

按照下面展示的情况进行输入,如果没有出错的话,你应该可以看到命令行窗口显示如下的内容

创建测试用例
用例编号: itest_001
请输入用例名称:
登录成功
请输入用到的测试数据,比如: 测试站点=www.itest.info:
无
请输入测试步骤:
略
请输入测试断言(预期结果):
跳转到www.itest.info

用例编号: itest_001
用例名称: 登录成功
测试数据: 无
测试步骤: 略
测试断言: 跳转到www.itest.info

import

python给我们预置了很多常用的功能,这些功能以module的形式组织起来,使用import关键字就可以把我们需要的内容导入进来,从而在脚本里使用。

上面的代码里,我们从sys module里导入了argv这个功能。

argv

argv的意思是argument variable,这是大多数编程语言里的标准概念。argv里保存了脚本运行时你传入的所有的命令行参数以及脚本名称。看下面的例子


python something.py first second third # argv = [something.py, first, second, third]
python something.py my_var # argv = [something.py, my_var]
python something.py # argv = [something.py]

所以argv里按顺序保存了脚本名称以及各个命令行参数。

注意:命令行参数是以空格分隔的

unpack

简单来说,unpack就是把一组数据按顺序的保存到变量里。看下面的例子

argv = ['something.py', 'first', 'second', 'third']
a, b, c, d = argv # a='something.py' b='first', c=second d='third'
argv = ['something.py', 'my_var']
script, the_var = argv # script='something.py' the_var='my_var'

上面的代码里script, case_id = argv的作用就是把第1个命令行参数赋值给变量case_id

动手时间

  • 试着不传任何命令行参数,看一下python会报什么错
  • 多传几个命令行参数,试一下会有什么效果
0

相关课程

python极简教程
图文
python极简教程

课程分类: 编程语言

言简意赅

  • 已完结
  • 已更新7集
  • 最后更新时间: 2024-03-18 12:30:10

免费

查看详情
Java语言基础教程
图文
Java语言基础教程

课程分类: 编程语言

来自上古的荣光

  • 已完结
  • 已更新8集
  • 最后更新时间: 2024-03-18 09:43:08

免费

查看详情
django入门投票系统
django入门投票系统

课程分类: 编程语言

django入门投票系统

  • 更新中
  • 已更新6集
  • 最后更新时间:

免费

查看详情