我是一名初学者,使用Python和Pycurl进行网页强调测试。然而,pycurl在终端中不断打印出返回的html,这使得压力测试花费的时间比它应该的更多。我正在使用的一个这样的pycurl代码发布在下面。有没有办法只需运行pycurl而无需在任何地方打印或写入结果?任何协助都会受到谴责。
p = pycurl.Curl()
p.setopt(pycurl.POST, 0)
p.setopt(pycurl.COOKIE, sessioncookie)
p.setopt(pycurl.URL, 'http://example.com/logoff.php')
p.perform()
p.close()
答案 0 :(得分:21)
Pycurl文档非常糟糕,但我认为你想把WRITEFUNCTION设置为一个什么都不做的函数,例如。
p.setopt(pycurl.WRITEFUNCTION, lambda x: None)
另外,我想说明我认为“SET做的一切”API与VMS一起发布。 Gaaah。
答案 1 :(得分:3)
可以尝试一下吗?
devnull = open('/dev/null', 'w')
p.setopt(pycurl.WRITEFUNCTION, devnull.write)
或只是一个什么都不做的功能。
答案 2 :(得分:1)
我对这里列出的两种方法都没有任何好运。两者都会导致以下错误:
pycurl.error: (23, 'Failed writing body (0 != 108)')
根据文档,lambda x: None
和devnull.write
都应该是不错的选择:
WRITEFUNCTION回调可能会返回写入的字节数。如果此数字不等于字节字符串的大小,则表示错误,libcurl将中止请求。 返回None是另一种方式,表示回调已经消耗了传递给它的所有字符串,因此成功了。
http://pycurl.sourceforge.net/doc/callbacks.html#WRITEFUNCTION
但是在我的项目中,我必须执行以下操作来解决此问题:
c.setopt(pycurl.WRITEFUNCTION, lambda bytes: len(bytes))
换句话说,当我查看时,返回写入的字节数是不可选的。 devnull.write
实际上确实返回了写入的字节数,但我没有考虑过。可能存在字节与字符串的问题。
请注意,我正在使用Python 3.我猜这不适用于Python 2.
答案 3 :(得分:0)
要隐藏输出,请将VERBOSE更改为0:
p.setopt(pycurl.VERBOSE, 0)