Gerhard
๐ค SpeakerAppearances Over Time
Podcast Appearances
And it's written in Rust, which means it's really fast. It has a very simple DSL. You put it in .herl files. And what does it look like? Well, let's have a look at this fast changed. So we're going to look at files changed. There's a workflow which runs it, and it just tests. That's it. And when it comes to the hurl file, I've put it in test, by the way. There's the just file.
And it's written in Rust, which means it's really fast. It has a very simple DSL. You put it in .herl files. And what does it look like? Well, let's have a look at this fast changed. So we're going to look at files changed. There's a workflow which runs it, and it just tests. That's it. And when it comes to the hurl file, I've put it in test, by the way. There's the just file.
We'll scroll past that. Let's look at this one. Test admin.hurl. We get the host admin. We repeat it twice so that we can confirm the caching behavior. We expect the HTTP status code to be 302. And we say we want HTTP 2. You can specify this in the file when you do your configuration. And then you can write a bunch of assertions.
We'll scroll past that. Let's look at this one. Test admin.hurl. We get the host admin. We repeat it twice so that we can confirm the caching behavior. We expect the HTTP status code to be 302. And we say we want HTTP 2. You can specify this in the file when you do your configuration. And then you can write a bunch of assertions.
In this case, we make sure that the response comes back in a second, by a thousand milliseconds in this case. We check that the header, the location header, sends us back to homepage, right? Because we're not authenticated. Right. We also check that there's a... X varnish header, because that means this request has been served by varnish.
In this case, we make sure that the response comes back in a second, by a thousand milliseconds in this case. We check that the header, the location header, sends us back to homepage, right? Because we're not authenticated. Right. We also check that there's a... X varnish header, because that means this request has been served by varnish.
We are looking at the age, the age header, which should be zero because they should never be stored from cache. We look at cache status just to double check and the miss. The cache status header should contain, in this case, hits zero and should also always contain miss. All this very nicely laid in a way that I think is easy to understand.
We are looking at the age, the age header, which should be zero because they should never be stored from cache. We look at cache status just to double check and the miss. The cache status header should contain, in this case, hits zero and should also always contain miss. All this very nicely laid in a way that I think is easy to understand.
And the fact that we can do repeats too, that's all we have to do to make sure the request gets run twice, which I think is really nice.
And the fact that we can do repeats too, that's all we have to do to make sure the request gets run twice, which I think is really nice.
So this is pull request 3 on the pipe dream. And again, there's a video. How does this work? So I'm just going to play through it. There's no sound. But the thing which I wanted to go to is this report, which is really cool.
So this is pull request 3 on the pipe dream. And again, there's a video. How does this work? So I'm just going to play through it. There's no sound. But the thing which I wanted to go to is this report, which is really cool.
So after you run the test, you can have a look at the output, which shows you exactly the requests, how they happened, what headers were sent, how did this behave, which I think is really cool. Did you try running this locally, Jared? I watched your video. I didn't try running it. Excellent. So the video works.
So after you run the test, you can have a look at the output, which shows you exactly the requests, how they happened, what headers were sent, how did this behave, which I think is really cool. Did you try running this locally, Jared? I watched your video. I didn't try running it. Excellent. So the video works.
I didn't get like a nice waterfall, like to see how much like different parts of the request take. I think super useful.
I didn't get like a nice waterfall, like to see how much like different parts of the request take. I think super useful.
That is correct. Yes, that is correct. So the report is separate. So the report is separate from whether the test was successful or not. And right now, this commit has failed. So this test on main has failed. So we see the failure. And the failure is that string edge grace hits stale should not contain string stale. And it does.
That is correct. Yes, that is correct. So the report is separate. So the report is separate from whether the test was successful or not. And right now, this commit has failed. So this test on main has failed. So we see the failure. And the failure is that string edge grace hits stale should not contain string stale. And it does.
And also the age, like how long this has been cached for, we expect it to be less than 60, but it's been 67. So the system doesn't seem to behave the way we thought it would.
And also the age, like how long this has been cached for, we expect it to be less than 60, but it's been 67. So the system doesn't seem to behave the way we thought it would.