感觉大哥完全没读题
“员工数量你们想按谷歌的开发测试比,员工质量你们能跟人比吗?”
很有道理
啥时候公布啊?或者用你们的解释权解释一下
今年:
1.年初疫情在家在办,每天晚上看一节微积分课程
2.看了四分之一的课程觉得理解度太低,改练题,买了《托马斯的微积分》开练
3.练了 3、4 个月,写完了几个练习本(当然间距比较大),当中也学了一些线性代数
5.6 月左右开始看吴恩达的机器学习课程,看了一个多月,有理解有不懂的,也不知道如何落地,机器学习方面的努力搁置……(感觉上办年的收获就是再看同事发的算法题感觉极其自信)
6.看了两三个月各学科有兴趣的书,解惑和增长知识
7.开始着手开搞接口自动化测试,搞完接口自动化之后发现自己对于接口测试的提升极大。
8.最近开搞 WEB 的 UI 自动化回归,今天开搞 app 的。
下一步:
搞测试平台,把 UI 和接口自动放上去,再看看怎么和 jenkins 接合一下部署个定期的脚本。
刚看了楼主的:“集成 Chrome 插件 可以让业务测试执行的时候自动生成业务自动化脚本”,我觉得我也可以搞一下
数据变动很正常,变动就得维护脚本,这不应该算问题,应该算在自动化之初就考虑的成本
如题:当在后台做相应操作前端会改变界面或数据
这种场景我觉得可以使用接口结合 UI 自动化的方式对功能进行测试。
分为三步:
首先,后台作为动作的发起方,先对后台进行测试:使用 WEB 自动化操作后台后,通过数据库对数据进行查询验证后台的操作是否成功
第二步是测试移动端前台:直接通过调用接口模拟后台操作,查看移动端前台页面或数据是否有改变
第三步是联合测试(纯模拟用户实际使用):使用 web 自动化操作后台,并使用移动端自动化来验证前台是否正常确响应
单回答这个问题的话,是用这种分层的形式进行测试。
然后讨论实际应用中可能遇到的问题是:
如何管理这种串联形式的用例?
每测一个点都要三步感觉会不会用到的数据有些复杂?那我们把用例要用到的数据先用替代方式表现出来:
1.A1 A2
2.B1 B2
3.A1 B2(第三步用到的数据和前两步有重合)
并且由于每三步实际只测试了一个功能点,所以可以将 A1 A2 B1 B2 列为一条用例数据。
测试脚本只需要对对应位置的数据进行存取即可。
看了一下报错,确实是点击不到,报的是 ElementClickInterceptedException,
加了一句
driver.execute_script("arguments[0].click();", loc)
就好了。
大佬你是怎么一下就发现是可以定位到但是点击不到的?
孙总是实力网红,不用帮他们挡子弹
就是说按钮虽然加载完了,但是按钮的点击动作的 js 方法还没加载完毕,是这个意思吗?
嗯,全文看下来感觉自己还差不少
问题 1 考不考虑在 teardown 里直接删除所有数据
嗯嗯,互相帮助共同进步
确实是这样,我刚也看了下底层代码,跟大佬说的一模一样,大佬帮我解答问题还特意查看了底层代码真是感谢!
军规看了两遍,确实香啊大佬,感觉就像避雷针指南针
OK 啦,感谢大佬!
大佬请教一下,我现在是修改成这样了,但是这三个控件我怎么做描述呢?就是怎么标识这三个控件的名称,我就一行代码定位再操作的话之后容易忘了这个控件是干嘛用的了。我现在想的是把结果付给一个能描述控件的变量,但是感觉这个变量付了值也没有用。另一个方法就是不付变量,直接每个定位和操作都加一行描述控件的注释。大佬觉得怎么做合适点呢?
Traceback (most recent call last):
File "", line 1, in
File "C:\Program Files\JetBrains\PyCharm 2019.1\helpers\pydev_pydev_bundle\pydev_umd.py", line 197, in runfile
pydev_imports.execfile(filename, global_vars, local_vars) # execute the script
File "C:\Program Files\JetBrains\PyCharm 2019.1\helpers\pydev_pydev_imps_pydev_execfile.py", line 18, in execfile
exec(compile(contents+"\n", file, 'exec'), glob, loc)
File "C:/Users/Administrator/PycharmProjects/untitled2/UIAuto/pingtaipage.py", line 110, in
org.checkname()
File "C:\Users\Administrator\PycharmProjects\untitled2\UIAuto\basepage.py", line 20, in checkname
'#map > div.main-wrapper > div > div > div.sticker > div > div > div.ivu-table-wrapper > div > div.ivu-table-body > table > tbody > tr > td:nth-child(3) > div > span'), u'hahaha')
File "C:\Users\Administrator\PycharmProjects\untitled2\venv\lib\site-packages\selenium\webdriver\support\wait.py", line 71, in until
value = method(self.driver)
File "C:\Users\Administrator\PycharmProjects\untitled2\venv\lib\site-packages\selenium\webdriver\support\expected_conditions.py", line 209, in __call_
element_text = _find_element(driver, self.locator).text
File "C:\Users\Administrator\PycharmProjects\untitled2\venv\lib\site-packages\selenium\webdriver\support\expected_conditions.py", line 411, in _find_element
return driver.find_element(*by)
TypeError: find_element() takes from 1 to 3 positional arguments but 13 were given
以上是堆栈,实际报错的就是 basepage 那第 20 行的代码。
def checkname(self):
return WebDriverWait(self.driver, 10).until(EC.text_to_be_present_in_element(By.CSS_SELECTOR,
'#map > div.main-wrapper > div > div > div.stic'
'ker > div > div > div.ivu-table-wrapper > div > di'
'v.ivu-table-body > table > tbody > tr > td:nth-child(3) > div > span'), u'hahaha')
这个是报错的代码,我觉得可能是 css 的字串符传的问题,改成一行串也还是报 but 13 were given,我都不知道这个 13 究竟是指哪里了。。
O 啦 K,多谢大佬!
哦哦,那页面元素定位信息还用每个元素给它一个方法吗?还是直接在 PO 里定义变量,然后用业务操作函数直接操作类里的变量
哦哦,那就等于是把我 case 里面对元素的操作都放进了 login 方法里,所以 case 就变成了直接调用类的方法就可以了
说的太对了,我还铁了心了学了半年数学,完了看了 1/3 的吴恩达机器学习视频,也没整明白从哪入手
方法可够机智的,谢谢大神啦~
谢谢啦
怎么查 toast 的 xpath 啊,toast 就出来一瞬间就没了,去 copy xpath 都反应不过来