什么是更快:
(A)'Unpickling'(正在加载)一个酸洗字典对象,使用 pickle.load()
要么
(B)使用将JSON文件加载到字典 simplejson.load()
假设:在案例A中已存在pickle对象文件,并且在案例B中已存在JSON文件.
我正在尝试为项目设置一些自动单元测试.我有一些功能,作为副作用偶尔会调用另一个功能.我想写一个单元测试,测试第二个函数被调用,但我很难过.下面是伪代码示例:
def a(self):
data = self.get()
if len(data) > 3500:
self.b()
# Bunch of other magic, which is easy to test.
def b(self):
serial.write("\x00\x01\x02")
Run Code Online (Sandbox Code Playgroud)
我该如何测试b()-gets调用?
我有一个脚本按顺序创建以下几对工作表:
WorkSheet (holds data) -> ChartSheet using WorkSheet
Run Code Online (Sandbox Code Playgroud)
脚本完成后,我留下了如此订购的工作表:
Data1, Chart1, Data2, Chart2, Data3, Chart3, ...
Run Code Online (Sandbox Code Playgroud)
是否可以在脚本末尾(即之前workbook.close())重新排序工作表,以在最终的.xlsx文件中获取以下工作表顺序?
Chart1, Chart2, Chart3,...,ChartN, Data1, Data2, Data3,...
Run Code Online (Sandbox Code Playgroud) 请考虑以下代码段:
import MySQLdb
def get_data(id):
db = MySQLdb.connect(db='TEST')
cursor = db.cursor()
cursor.execute("SELECT * FROM TEST WHERE ID = '%s'" % id)
return cursor.fetchall()
print(get_data(1))
Run Code Online (Sandbox Code Playgroud)
代码中存在一个主要问题 - 它容易受到SQL注入攻击,因为查询不是通过DB API参数化的,而是通过字符串格式化构建的.如果以这种方式调用函数:
get_data("'; DROP TABLE TEST -- ")
Run Code Online (Sandbox Code Playgroud)
将执行以下查询:
SELECT * FROM TEST WHERE ID = ''; DROP TABLE TEST --
Run Code Online (Sandbox Code Playgroud)
现在,我的目标是分析项目中的代码并检测可能容易受到SQL注入攻击的所有位置.换句话说,查询是通过字符串格式构造的,而不是在单独的参数中传递查询参数.
在静态代码分析软件包的帮助下pylint,它是否可以静态解决pyflakes?
我知道sqlmap流行的渗透测试工具,但据我所知,它正在对抗Web资源,通过HTTP请求将其作为黑盒进行测试.
在量角器1.5.0中,引入了一个新--troubleshoot标志,目前没有正确记录,但在更新日志中它指出:
改进错误消息并在何时添加调试信息
- 无法解析配置文件
- 无法启动webdriver会话
- 使用元素找到多个元素
--troubleshoot命令行参数涵盖哪些用例?
我问的原因是这有点令人困惑:
--verbose和--stackTrace标志.它们是否也与调试和故障排除有关?根据我如何断言元素是集中的?线程,您可以通过切换到a来检查元素是否被聚焦activeElement()并断言这与您期望获得焦点的元素相同:
expect(page.element.getAttribute('id')).toEqual(browser.driver.switchTo().activeElement().getAttribute('id'));
Run Code Online (Sandbox Code Playgroud)
在我的例子中,当前关注的元素没有id属性.
我应该怎么做而不是检查id?
额外的问题:另外,正如你从我试图解决它看到的那样,看起来我不能指望/断言一个元素(或web元素)作为一个完整的对象.为什么?
我试过了:
expect(page.element).toEqual(browser.driver.switchTo().activeElement());
Run Code Online (Sandbox Code Playgroud)
但是失败的是我甚至无法理解的错误 - 有一个巨大的追溯(在控制台中滚动约10分钟),但内部没有用户友好的错误.
我也试过用getWebElement():
expect(page.element.getWebElement()).toEqual(browser.driver.switchTo().activeElement());
Run Code Online (Sandbox Code Playgroud)
但是这导致了以下错误:
错误:期望使用WebElement参数调用,期望是Promise.你的意思是使用.getText()吗?
使用最新的量角器开发版本.
我最近发现了一个很棒的ng-describe软件包,它通过抽象掉你必须记住/查找和编写的所有样板代码来加载,注入,模拟或间谍,从而使AngularJS应用程序的单元测试非常透明.
有人试过ng-describe用protractor吗?它是否有意义,我们可以从中受益吗?
引起我注意的一件事是你可以轻松地模拟HTTP响应:
ngDescribe({
inject: '$http', // for making test calls
http: {
get: {
'/my/url': 42, // status 200, data 42
'/my/other/url': [202, 42], // status 202, data 42,
'/my/smart/url': function (method, url, data, headers) {
return [500, 'something is wrong'];
} // status 500, data "something is wrong"
},
post: {
// same format as GET
}
},
tests: function (deps) {
it('responds', function (done) {
deps.$http.get('/my/other/url')
.then(function (response) {
// response.status …Run Code Online (Sandbox Code Playgroud) 我想从"a href"属性获取链接
<a href="http://fgkzc.downloader.info/download.php?id=bc56585624bbaf29ebdd65d0248cb620" rel="nofollow" class="dl_link 1" style="">Download</a>
Run Code Online (Sandbox Code Playgroud)
我在做什么:
ReadOnlyCollection<IWebElement> lists1 = driver.FindElements(By.ClassName("dl_link"));
string s = lists1[0].GetAttribute("a href");
Run Code Online (Sandbox Code Playgroud)
我正在使用类"dl_link 1"获取元素,但我无法获取它的链接,字符串为空?
所以我们的应用程序在生产中启用了CORS.
我有一个不在本地启用CORS的项目.有没有办法禁用量角器的Web安全性?有没有办法让我为selenium实例添加参数?
我们正在寻找基于配置的解决方案.我们的本地开发机器非常依赖我们可以安装的东西.这可能吗?
我试过的是设置chrome选项: https //github.com/angular/protractor/issues/175
但这似乎只用于chrome扩展.
javascript selenium google-chrome selenium-webdriver protractor
最近,我注意到了一个新的定位器被添加到Protractor文档中 - by.js():
通过计算JavaScript表达式来定位元素,该表达式可以是函数或字符串.
我理解这个定位器提供了什么,但是当这个定位器很有用时,我错过了真实的用例.我应该何时使用by.js而不是使用其他内置定位器by.css?
protractor ×5
testing ×5
javascript ×4
python ×4
angularjs ×3
selenium ×3
end-to-end ×2
c# ×1
debugging ×1
excel ×1
json ×1
ngdescribe ×1
nosetests ×1
pickle ×1
security ×1
simplejson ×1
sql ×1
unit-testing ×1
xlsxwriter ×1