一、os.system函数
使用os库的 system 函数 调用其它程序 是非常方便的。
就把命令行内容 作为 system 函数的参数 即可
1.那么在Python中调用本地程序,就可以像这样:
import os
os.system('C:\autoit\autoit.exe')
2.比如,我们要使用wget下载 nginx 安装包,如果在命令行执行 是这样的
import os
cmd = r'd:\tools\wget http://mirrors.sohu.com/nginx/nginx-1.13.9.zip'os.system(cmd)
print('下载完毕')
3.打开任何非可执行文件
os.startfile('d:\\统计数据.xlsx')
二、subprocess 模块
可以获取外部程序输出到屏幕的内容。 这在自动化的时候,非常有用。 可以用来判断外部程序执行结果是否成功, 或者获取我们要分析的数据。
有的时候,启动外部程序后,我们的Python程序本身并不需要等待外部程序结束。
比如,我们启动 wget下载命令, 下载1个文件。让它下载就可以了, 然后我们的程序还要继续去做其他的任务。
这时候, 我们就不能用os.system, 因为它会等待 外部程序结束 才会继续执行其它自动化代码
我们可以用subprocess里面的Popen对象,像这样:
from subprocess import Popen
proc = Popen(
args='wget http://xdserver/xd.zip',
shell=True )
print ('下载zip包中,程序将继续往下执行')
三、 报告中加入图片
在用 selenium做 web自动化、Appium 做手机自动化 时, 可以使用hytest库中的函数 SELENIUM_LOG_SCREEN 进行截屏并写入测试报告中。
from hytest import *classc1: name = 'web-lesson-0001' defteststeps(self): self.driver = webdriver.Chrome()
self.driver.get('http://192.168.56.103/sign.html')
# 第1个参数是 webdriver 对象 # width 参数为可选参数, 指定图片显示宽度
SELENIUM_LOG_SCREEN(driver, width='70%')
如果你想 直接在报告中 插入 已有的图片,可以使用hytest库中的函数 LOG_IMG
from hytest import *classc1: name = 'web-lesson-0001' defteststeps(self):
# 第1个参数是 图片路径,可以是网络
url LOG_IMG('http://www.byhy.net/xxx.png')
# 也可以是相对报告文件的本地路径
LOG_IMG('imgs/abc.png')
# width 参数为可选参数, 指定图片显示宽度
LOG_IMG('imgs/abc.png', width='70%')
网友评论