是测试 APP 内嵌的 H5 么?
如果知道RGBCWPage
页面的 url, 从原生切换到 webview 之后,可以调用driver.get(RGBCWUrl)
直接进入到 RGBCWPage 页面
应该是极客时间里的 软件测试 52 讲
不好意思,前面误导了,回想了下代理原理,客户端这边是拿不到代理篡改的 request;硬要拿的话可以在 mitmproxy 这边把修改后的 request 写到本地文件里,然后 requests 这边发送完请求之后,读本地文件
打印被篡改的 headers,可以通过 response 来打印
import requests
r = resquests.get('132132131')
print(r.request.hreaders)
嗯嗯,的确是这样, 昨天调整完 allure 的配置之后,就和你一样的了,有失败的用例就 unstable 了,尝试在 allure 后面执行exit 0
, 不过没有效果;感觉要从插件代码入手,或者 pipeline 有什么函数可以改变构建状态的了;
不过这个应该不影响吧?
你在 script 的末尾加 exit 0 试试,gitlab 的 ci/cd 我没用过
我那个是我 allure 的配置问题, 我刚创建了流水线,没配置发送邮件,执行完是success
pipeline {
agent any
environment{
HHH = "lalalala"
}
stages {
stage('Hello') {
steps {
sh '''cd /var/lib/jenkins/workspace/API_test
bash -x run.sh
'''
}
post{
always{
allure jdk: 'JDK', results: [[path: "./allure-results"]]
}
success{
echo "1234"
}
}
}
}
}
你看下控制台的日志有句
Build step 'Allure Report' changed build result to UNSTABLE
应该是 allure 插件在生成测试报告的时候,发现有失败的用例,然后把构建状态置为 UNSTABLE
了
还有种方式就是把执行脚本放在一个 shell 脚本文件中,在文件末尾exit 0
pycharm 应该是捕获异常然后返回 0 了, jenkins 不会对对脚本做异常处理,可以用用 shell 的异常处理,让 pytes 执行完不论是否有失败的用例都 exit 0
ERROR: script returned exit code 1
用例执行失败,退出程序时,返回的 code 1,只有返回值为 0 的情况下, jenkins 才会认定构建成功;
SELECT
a.id,
a.category
FROM
t a
INNER JOIN ( SELECT category, MAX( `value` ) AS 'value' FROM t GROUP BY category ) AS b ON a.category = b.category
AND a.`value` = b.`value`
使用 xcode 运行 test 时出现上面这个错误
手机打开设置
- 通用
-描述文件与设备管理
,信任开发者证书,重新运行,成功
是手机上的,你手机上找到 WebDriverAgentRunner 这个应用点击下,会有提示
because it has an invalid code signature, inadequate entitlements or its profile has not been explicitly trusted by the user.
看这个错误,应用应该是安装了, 只是签名证书没有信任,在设置里面找找看,忘记具体在哪个地方了;
你这个有点奇怪,没有显示短信信息
一般运行之后,报错的话,会显示报错信息的
https://2.python-requests.org/en/master/user/advanced/#verification
试下官方文档的写法;
requests.get('https://github.com', verify='/path/to/certfile')
不知道你os.system()
是放在哪执行的,可以单独创建个 py 文件来执行测试,在用例跑完之后再通过os.system()
来生成报告, 示例
run.py
import pytest
import os
if __name__ == '__main__':
pytest.main(['request_with_parameters_test.py', '-s', '-vvv', '--alluredir', 'reports/xml'])
os.system('allure generate -c -o reports/html')
用 pycharm 要设置用 pytest 运行
你运行的时候不是用 pytest 吧?
from httprunner import Parameters
class TestCaseRequestWithParameters(HttpRunner):
@user1ize(
"param",
Parameters(
{
"user_agent": ["iOS/10.1", "iOS/10.2"],
"username-password": "${parameterize(request_methods/account.csv)}",
"app_version": "${get_app_version()}",
}
),
)
def test_start(self, param):
super().test_start(param)
1.参数化写法不对;
2.需要通过 pytest 命令执行
示例链接:https://github.com/httprunner/httprunner/blob/master/examples/postman_echo/request_methods/request_with_parameters_test.py
也不知道你啥需求,建议补充下,然后 github 上有参数化的示例可以先看看
https://github.com/httprunner/httprunner/blob/master/examples/postman_echo/request_methods/request_with_parameters.yml
非必须在同一个 py 文件中, 你可以看下 python 的反射
scope="module" 可以实现多个.py 跨文件共享前置
这个不对哦,module 表示每个.py 文件里只调用一次
关于 with,可以搜下python 上下文管理器
🙋